1

голосов
1

ответ
52

Просмотры

Вставки из той же строке, что происходит и как отклонить вставку, если ити уже присутствует в БД Джанго-остальное-основы, PostgreSQL

Я пытаюсь создать бэкенд для социальных приложений. При вставке друга соотношение в базе данных, он также вставив отношения уже присутствует в БД. Пример: Пользователь 1 и Пользователь 2 уже друзей Итак, Строка в БД: 1,2,3, дата Теперь БД не должны принимать ту же строку больше, но она принимает !!! Как отклонить или ограничить несколько вставок одинаковых строк. Мой Вид: класс Дружба (viewsets.ModelViewSet): "" "Создание Рукоятки Дружба" "" authentication_classes = (TokenAuthentication,) serializer_class = UserFriendSerializer permission_classes = (permissions.FriendCreate, IsAuthenticated) QuerySet = Friends.objects.all () четкости perform_create ( Я, сериализатор): «» «Устанавливает статус дружбы пользователя» «» serializer.save (имя пользователя = self.request.
Dilip Krishna
1

голосов
0

ответ
833

Просмотры

Android Загрузить изображения из камеры и галереи с помощью Модернизированного

Я использую Дооснащение для загрузки изображений на сервер, но я не могу закончить и я даже не могу найти то, что ошибка в коде. Мне не нужно, чтобы показать результат изображения для пользователя перед загрузкой, но только нужно, чтобы получить файл для загрузки, когда пользователь нажимает на кнопку регистрации. Используются для захвата изображений: прикольные dispatchTakePicture () {уага takePictureIntent: Намерение = Intent (MediaStore.ACTION_IMAGE_CAPTURE) // Убедитесь, что для по крайней мере одна активности камеры, если {уага photoFile (takePictureIntent.resolveActivity (packageManager)! = NULL): Файл? = Нулевая попытка {photoFile = createImageFile () Тост ( "dispatchTakePicture" + photoFile.toString ())} поймать (е: IOException) {Log.d (. LOG_TAG, e.printStackTrace () ToString ())} если (photoFile! = NULL) {вар photoUri: ) RequestBody расположение, @Part MultipartBody.Part profile_pic); Это мой знак-вверх метод: весело performSignup () {вал name_et: String = et_full_name.text.toString () Вал email_et: String = et_email_address.text.toString () Вал password_et: String = password.text.toString () вал location_et: String = location.text.toString () вар имя пользователя: RequestBody = RequestBody.create (MultipartBody.FORM, name_et) вар электронная почта: RequestBody = RequestBody.create (MultipartBody.FORM, email_et) вар пароль: RequestBody = RequestBody.create ( MultipartBody.FORM, password_et) вар местоположение: RequestBody = RequestBody.create (MultipartBody.FORM, location_et) вал mainfile: File = Файл (currentPhotoPath) вар filePart: RequestBody = RequestBody.create (MediaType.parse (contentResolver.getType (Uri.
Dilip Krishna
1

голосов
1

ответ
654

Просмотры

Android Room Database Data is not getting inserted?

I am inserting data into room database receiving from network. It doesn't show any errors and neither the app is crashing but the screen is empty and table is empty All works fine but when i use Stetho Debug Tool and look into feed table nothing is inserted ,Can anyone figure it out and help me. And also to see whether the PageListAdapter and LivePageListBuilder is correctly implemented or Not? 1.Room DB Data is not insrted 2.Paging Implementation This is the Dao Method //Post feed item @Insert(onConflict = OnConflictStrategy.IGNORE) fun insert(feed:feed) Repository class: class FeedRepository ( private val feedDao: FeedDao ){ private var lastRequestedItem = 0 private var isRequestInProgress = false var executor = Executors.newSingleThreadExecutor() companion object { lateinit var feedList:List private const val DEFAULT_NETWORK_PAGE_SIZE = 50 private const val DEAULT_DATABASE_PAGE_SIZE = 20 private val apiClient = ApiClient.getApiClient().create(UserClient::class.java) // For Singleton instantiation @Volatile private var instance: FeedRepository? = null fun getInstance(feedDao: FeedDao) = instance ?: synchronized(this) { instance ?: FeedRepository(feedDao).also { instance = it } } } fun showFeed():LiveData{ Timber.d("showFeed() method called") val dataSourceFactory = feedDao.getAllFeed() val boundaryCallback = FeedBoundaryCallBack(id = lastRequestedItem) val builder = LivePagedListBuilder(dataSourceFactory, DEAULT_DATABASE_PAGE_SIZE) .setBoundaryCallback(boundaryCallback) .build() return builder } public fun getFeedResponse() { Timber.i("getFeedResponse()") if(isRequestInProgress) return isRequestInProgress = true val call: Call = apiClient.getFeed(DEFAULT_NETWORK_PAGE_SIZE,lastRequestedItem) call.enqueue(object :Callback{ override fun onFailure(call: Call?, t: Throwable?) { Timber.d(t.toString()) } override fun onResponse(call: Call?, response: Response?) { if(response!!.isSuccessful){ //lastRequestedItem += response?.body()!!.size feedList = response?.body()!!.feedList for (i in feedList){ var name = i.username var media = i.mUrl var loc = i.location var like = i.likesCount.toString() var timeStamp = i.timeStamp var id = i.id.toLong() var res:feed = feed(id,name,media,timeStamp,loc,like) addResponseTODB(res) } Timber.i("Successful Response -> Adding to DB") isRequestInProgress = false }else{ when(response.code()){ 400 -> Timber.d("Not Found 400") 500 -> Timber.d("Not logged in or Server broken") } } } }) } private fun addResponseTODB(items:feed) ={ executor.execute( {feedDao.insert(items)}) Timber.d("Feed object Inserted into Database") } Adapter and ViewHolder: class FeedAdapter : PagedListAdapter (FeedDiffCallBack()){ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { return ViewHolder( LayoutInflater.from(parent.context) .inflate(R.layout.feedrow,parent,false) ) } override fun onBindViewHolder(holder: ViewHolder, position: Int) { val feedItem = getItem(position) if(feedItem != null){ holder.bind(feedItem) } } class ViewHolder(itemView:View):RecyclerView.ViewHolder(itemView) { //Retrieve data private val username:TextView = itemView.findViewById(R.id.username_txt) private val userPic:ImageView = itemView.findViewById(R.id.feedImage) private val location:TextView = itemView.findViewById(R.id.postLocation) private val time:TextView = itemView.findViewById(R.id.postTime) private val post:ImageView = itemView.findViewById(R.id.postImage) fun bind(feed: feed) = with(itemView){ //TODO:Bind Data with View if(feed == null) { post.visibility = View.GONE } else{ showFeedData(feed) } } private fun showFeedData(feed: feed) { username.text = feed.username userPic.setImageURI(null) userPic.visibility = View.GONE location.text = feed.location time.text = feed.timeStamp.toString() post.setImageURI(Uri.parse(feed.mUrl)) } } } class FeedDiffCallBack : DiffUtil.ItemCallback() { override fun areItemsTheSame(oldItem:feed, newItem: feed): Boolean { return oldItem?.id == newItem?.id } override fun areContentsTheSame(oldItem: feed, newItem: feed): Boolean { return oldItem == newItem } }
Dilip Krishna

Связанные вопросы