В
Size: a a a
В
В
ИG
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).
DO
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
В
ИG
Write an explicit `.create()` method for serializer `api.serializers.CampaignSerializer`, or set `read_only=True` on nested serializer fields.
ИG
ИG
AG
formset_factory
T
AG
extra=<count>
DO
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)
В
formset_factory
ИG
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)
AG
В
В
AG