Size: a a a

Django [ru] #STAY HOME

2020 October 15

В

Василий in Django [ru] #STAY HOME
источник

В

Василий in Django [ru] #STAY HOME
Может я вообще не в том направлении двигаюсь и мне не нужен inlineformset_factory? Помогите разобраться плз
источник

ИG

Илья Grin in Django [ru] #STAY HOME
D. Ouhh
django.db.utils.IntegrityError: null value in column "app_id" of relation "api_campaign" violates not-null constraint
DETAIL:  Failing row contains (5, f, 30, ongoing, 2020-10-15, 2020-10-15, {}, {}, wheelio, {"popupShow": false, "popupText": "Someone from {{State}} just w..., 0, 0, 0, f, f, null, null).

если поставить app = AppSerializer(read_only=True)
app это имя поля другого сериализатора?
источник

DO

D. Ouhh in Django [ru] #STAY HOME
Илья Grin
app это имя поля другого сериализатора?
class AppSerializer(serializers.ModelSerializer):
   coupons = CouponSerializer(many=True)

   class Meta:
       model = App
       fields = (
           'gdpr_enabled',
           'tos',
           'big_logo',
           'small_logo',
           'texts',
           'colors',
           'themes',
           'images',
           'custom_fields',
           'custom_bars',
           'show_pull_tab',
           'coupons',
       )


class CampaignSerializer(serializers.ModelSerializer):
   app = AppSerializer(read_only=True)

   class Meta:
       model = Campaign
       fields = (
           'shop',
           'campaign_status',
           'cookie_expiration',
           'schedule_type',
           'schedule_start_date',
           'schedule_end_date',
           'url_filters',
           'email_segmentations',
           'app_type',
           'app',
           'triggers',
           'displayed',
           'emails_collected',
           'rejected_after_spin',
           'allow_duplicate_emails',
           'auto_inject_coupon',
       )
       read_only_fields = (
           'shop',
       )
источник

ИG

Илья Grin in Django [ru] #STAY HOME
Василий
Может я вообще не в том направлении двигаюсь и мне не нужен inlineformset_factory? Помогите разобраться плз
Фронт проще отдельно писать на html+js. А так читай  django template
источник

В

Василий in Django [ru] #STAY HOME
Илья Grin
Фронт проще отдельно писать на html+js. А так читай  django template
Думаешь что проблема в теплейте?
источник

ИG

Илья Grin in Django [ru] #STAY HOME
D. Ouhh
но теперь другая проблема:
Write an explicit `.create()` method for serializer `api.serializers.CampaignSerializer`, or set `read_only=True` on nested serializer fields.
Переопредели метод create и посмотри что туда лишнее приходит и в какое поле
источник

ИG

Илья Grin in Django [ru] #STAY HOME
Василий
Думаешь что проблема в теплейте?
В нем форму создаешь а на сервере view создаешь и обрабатываешь сериализаторами
источник

ИG

Илья Grin in Django [ru] #STAY HOME
Илья Grin
Переопредели метод create и посмотри что туда лишнее приходит и в какое поле
В сериалиализаторе а не во view
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Василий
Думаешь что проблема в теплейте?
ты не обозначил проблему. Двигаешься в правильном направлении. Только, судя по коду, тебе нужен просто formset_factory
источник

T

Troubleshoot in Django [ru] #STAY HOME
Привет, кто работал с SSO SAML/OpenId. Подскажите плиз. Пытаюсь подрубить вход через майкрософт и окту и все работает, только если пользователь существует в активной директории в личном кабинете окты или майкрософта. То есть пока я не добавлю туда нового юзера (не сделаю ему инвайт или еще как-то) он не будет логиниться на мой бек джанги. Это предусмотрено SSO такой флоу или этого можно избежать?
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Василий
Народ, помогите плз. Пытаюсь вывести на одну страницу с формой несколько связанных через FK моделей. Делаю через inlineformset_factory. Отображается на странице не так все как я хотел( Идея такая: на одной странице заполнять информацию из нескольких связанных таблиц и отправлять ее в бд.
чтобы задать кол-во пустых форм в формсете, надо указать extra=<count>
Или добавлять формы в html, с помощью JS
источник

DO

D. Ouhh in Django [ru] #STAY HOME
Илья Grin
Переопредели метод create и посмотри что туда лишнее приходит и в какое поле
    def create(self, request, *args, **kwargs):
       # creating app
       app = App()
       app.save()

       breakpoint()
       campaign_data = request.data.dict()
       campaign_data["app"] = AppSerializer(app).data
       campaign_data["shop_id"] = request.user.pk

       serializer = self.get_serializer(data=campaign_data)
       serializer.is_valid(raise_exception=True)
       self.perform_create(serializer)
       headers = self.get_success_headers(serializer.data)

       return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)

ругается на campaign_data["app"]. есть идеи как вписать так чтобы он поддерживал writable nested fields?
источник

В

Василий in Django [ru] #STAY HOME
Artem Gubatenko
ты не обозначил проблему. Двигаешься в правильном направлении. Только, судя по коду, тебе нужен просто formset_factory
Сейчас попробую
источник

ИG

Илья Grin in Django [ru] #STAY HOME
D. Ouhh
    def create(self, request, *args, **kwargs):
       # creating app
       app = App()
       app.save()

       breakpoint()
       campaign_data = request.data.dict()
       campaign_data["app"] = AppSerializer(app).data
       campaign_data["shop_id"] = request.user.pk

       serializer = self.get_serializer(data=campaign_data)
       serializer.is_valid(raise_exception=True)
       self.perform_create(serializer)
       headers = self.get_success_headers(serializer.data)

       return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)

ругается на campaign_data["app"]. есть идеи как вписать так чтобы он поддерживал writable nested fields?
Тебе нужно метод сериализатора переопределить. А ты показываешь метод view. У сериализатора тоже есть метод create который переопределить нужно
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Василий
Сейчас попробую
> fields = 'all'
и лучше перечили поля в форме
так писать норм для формы админки, т.к. класс админки сам управляет полями
источник

В

Василий in Django [ru] #STAY HOME
Artem Gubatenko
> fields = 'all'
и лучше перечили поля в форме
так писать норм для формы админки, т.к. класс админки сам управляет полями
ок
источник
2020 October 16

В

Василий in Django [ru] #STAY HOME
Artem Gubatenko
> fields = 'all'
и лучше перечили поля в форме
так писать норм для формы админки, т.к. класс админки сам управляет полями
Я сейчас прочитал в доке по джанге(https://docs.djangoproject.com/en/3.1/topics/forms/formsets/) что формсеты используются, чтобы несколько одинаковых форм на одной странице. Или я не так понял?)
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Василий
Я сейчас прочитал в доке по джанге(https://docs.djangoproject.com/en/3.1/topics/forms/formsets/) что формсеты используются, чтобы несколько одинаковых форм на одной странице. Или я не так понял?)
да, вроде твой кейс
источник

В

Василий in Django [ru] #STAY HOME
источник