Size: a a a

Django [ru] #STAY HOME

2020 May 16

AD

Alex Dem in Django [ru] #STAY HOME
Дмитрий Федорченко
Здравствуйте!
Подскажите, пжл, как в момент сохранения данных (метод SAVE), их использовать для записи во вторую таблицу.
Вот написал пример, но не понимаю почему не работает?

https://hastebin.com/ojivavenem.py
Ну в целом должно работать
Про отступы уже написали
Вызывать 404 из модели - не лучшая идея
Это надо делать во вьюхах.

Вообще самый нормальный вариант валидировать self.client во вьюхе и отдавать ошибку, а остальной блок сделать post-save сигналом
источник

AD

Alex Dem in Django [ru] #STAY HOME
Но в качестве варианта "на коленке" типа сойдет, схема выглядит рабочей
источник

AD

Alex Dem in Django [ru] #STAY HOME
Джанго и так, кстати, имеет своим валидаторы для self.client, так как у тебя там FK;
Не вижу смысла писать свою проверку поверх
источник

AD

Alex Dem in Django [ru] #STAY HOME
DRF и формы унаследуют эти правила валидации
источник

ЕП

Евгений Пушкарев... in Django [ru] #STAY HOME
Привет всем! Есть загвоздка. Чувствую что "истина где то рядом". Хочу создать запрос в DRF на список меню. В DRF две модели:1) объект Property 2)прибор на объекте ( есть поле property которое FK на объект Property. И вот я хочу получить вложенный список. объект1:{Прибор1, прибр2, прибор3},объект2:{Прибор4, прибр5, прибор6} хочу для этого использовать сериализатор. Но вот не могу понять как это сделать то.
источник

ЕП

Евгений Пушкарев... in Django [ru] #STAY HOME
как отфильтровать значение перед тем как отдать в сериализатор?
источник

ЕП

Евгений Пушкарев... in Django [ru] #STAY HOME
class PropertySerializer(serializers.ModelSerializer):
   owner = UserSerializer()

   class Meta:
       model = Property
       fields = ('id', 'name', 'owner', 'date_of_start_own', 'address1', 'address2', 'postcode')
источник

ЕП

Евгений Пушкарев... in Django [ru] #STAY HOME
подозреваю, что в сериализаторе объекта надо как то указать модель с параметрами
источник

DT

Dan Tyan in Django [ru] #STAY HOME
покажи лучше модели
источник

ЕП

Евгений Пушкарев... in Django [ru] #STAY HOME
ща
источник

ЕП

Евгений Пушкарев... in Django [ru] #STAY HOME
Модель Объект:

class Property(models.Model):
   name = models.CharField(max_length=40, verbose_name="Название", default='Собственность')
   owner = models.ForeignKey(User, verbose_name="Владелец", on_delete=models.CASCADE)


 class Contact(models.Model):
   name = models.CharField(max_length=40, verbose_name="Имя", default='')
   property = models.ForeignKey(Property, verbose_name="Собственность", on_delete=models.CASCADE)
источник

ЕП

Евгений Пушкарев... in Django [ru] #STAY HOME
Contact - это я в посте выше не правильно выразился не прибор, а получатель
источник

DT

Dan Tyan in Django [ru] #STAY HOME
и чтонужно получить ?
источник

AD

Alex Dem in Django [ru] #STAY HOME
Евгений Пушкарев
подозреваю, что в сериализаторе объекта надо как то указать модель с параметрами
Я немного запутался в твоих вопросах, но в целом может помочь:

YourSerializer(queryset, many=True).data - сериализация не объекта, а всего кверисета
your_field = serializers.SerializerMethodField() - позволяет отдавать сериализатору поле формируемое твоим любым методом
источник

DT

Dan Tyan in Django [ru] #STAY HOME
список контактов у property?
источник

ЕП

Евгений Пушкарев... in Django [ru] #STAY HOME
Dan Tyan
и чтонужно получить ?
property1:{contact1:{},contact2:{}},property2:{contact3:{}, contact4:{}}
источник

ЕП

Евгений Пушкарев... in Django [ru] #STAY HOME
Dan Tyan
список контактов у property?
fuf
источник

ЕП

Евгений Пушкарев... in Django [ru] #STAY HOME
Dan Tyan
список контактов у property?
ага
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Евгений Пушкарев
property1:{contact1:{},contact2:{}},property2:{contact3:{}, contact4:{}}
списком пойдет ?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
не словарем
источник