Size: a a a

Django [ru] #STAY HOME

2021 February 08

N

Nire in Django [ru] #STAY HOME
Kirill
Это как? У меня форма на основе modelform
Ну чё ты хочешь сделать конкретно?
источник

N

Nire in Django [ru] #STAY HOME
def clean_biggest_field:
   check_field_is_biggest()
источник

K

Kirill in Django [ru] #STAY HOME
Nire
Ну чё ты хочешь сделать конкретно?
Проверять выведенную сумму, чтобы она не превышала остаток на средстве оплаты
источник

N

Nire in Django [ru] #STAY HOME
Nire
def clean_biggest_field:
   check_field_is_biggest()
Ну вот так можешь
источник

K

Kirill in Django [ru] #STAY HOME
Допустим в базе числится что на карте 500р. И я не мог ввести 501 и записать в остаток -1
источник

N

Nire in Django [ru] #STAY HOME
Ну тут все зависит от формы тогда
источник

N

Nire in Django [ru] #STAY HOME
Ты как сумму считаешь?
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Kirill
Допустим в базе числится что на карте 500р. И я не мог ввести 501 и записать в остаток -1
Используешь позитивинт, ловишь сохранение трай эксептом например. Ну или в клине запрашиваешь текущее значение и сравниваешь с введенным
источник

K

Kirill in Django [ru] #STAY HOME
Esusss
Доброго вечера!

Подскажите, пожалуйста (контекст блога, посты привязаны к автору)
Как в DRF при выводе постов, показывать поля ForeignKey не по id, а по username, чтобы при этом при добавлении нового поста автора указывать через id или тот же username?

Нашел SlugRelatedField, все хорошо показывает, но при создании нового поста с указанием автора через id или username выплевывает ошибку « null value in column "author_id" of relation "blog_post" violates not-null constraint »
сериализатор и стандартный вывод - https://pastebin.com/wExQEJZN

Или здесь можно только обойтись тем, чтобы дополнительно еще и запрашивать юзера по id, после вывода поста?
class UserSerializer(serializers.ModelSerializer):
   class Meta:
       model = User
       fields = ['id', 'username']

class PostSerializer(serializers.ModelSerializer):
   author = UserSerializer(many=True, read_only=True)

   class Meta:
       model = Post
       fields = указываешь поля, author
источник

K

Kirill in Django [ru] #STAY HOME
Nire
Ты как сумму считаешь?
Остатки в базе хранятся по типам платнжей
источник

K

Kirill in Django [ru] #STAY HOME
Nikolay Cherniy
Используешь позитивинт, ловишь сохранение трай эксептом например. Ну или в клине запрашиваешь текущее значение и сравниваешь с введенным
Во, про clean где подробнее посмотреть, что за метод
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Kirill
Во, про clean где подробнее посмотреть, что за метод
Так @Nire1 тебе про него выше писал, в доках все есть.
источник

E

Esusss in Django [ru] #STAY HOME
Kirill
class UserSerializer(serializers.ModelSerializer):
   class Meta:
       model = User
       fields = ['id', 'username']

class PostSerializer(serializers.ModelSerializer):
   author = UserSerializer(many=True, read_only=True)

   class Meta:
       model = Post
       fields = указываешь поля, author
ту же ошибку выкидывает 🙁
и many разве тут нужен?
источник

E

Esusss in Django [ru] #STAY HOME
Nire
А вообще хорошо бы это в перформ криейт выставить - установку автором текущего юзера
этот метод жеж можно в ModelViewSet записывать?
источник

N

Nire in Django [ru] #STAY HOME
Esusss
этот метод жеж можно в ModelViewSet записывать?
Разрешаю
источник

N

Nire in Django [ru] #STAY HOME
Джанго рест у себя в доке кстати так и рекомендует текущего юзера добавлять в авторы
источник

N

Nire in Django [ru] #STAY HOME
Ну искать пруфы мне лень
источник

E

Esusss in Django [ru] #STAY HOME
Nire
Разрешаю
ггг, спасибо
выдает, что нужно теперь передать пользователя
https://pastebin.com/wExQEJZN - вьюсет
источник

E

Esusss in Django [ru] #STAY HOME
Nire
Джанго рест у себя в доке кстати так и рекомендует текущего юзера добавлять в авторы
нашел это, да
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
В гет контекст прокинь
источник