Как я могу установить по умолчанию модель, которая уже установлена по умолчанию для CurrentUserDefault()
Я создаю API бара, где пользователи могут создавать свои собственные фракции бара. Мне нужен способ, с помощью которого пользователь создаст контакт бара, который будет автоматически по умолчанию соответствовать бару, который создал пользователь
Я уже пробовал переопределить метод create в моем представлении
models.py
class Bar(models.Model):
name = models.CharField(max_length=100)
barOwner = models.OneToOneField(user, on_delete=models.CASCADE)
secondaryUsers = models.CharField(max_length=255, default='jonathan', null=True)
def __str__(self):
return self.name
# Bar contact Info
class StoreContact(models.Model):
options =(
("MTN", "MTN"),
("ORANGE","ORANGE"),
("NEXTEL", "NEXTEL")
)
numberType = models.CharField(max_length=200, choices=options, default='MTN')
number = PhoneNumberField(blank=True)
bar = models.ForeignKey(Bar, related_name='contact', on_delete=models.CASCADE)
def __str__(self):
return self.numberType
serializers.py
class BarContactSerializer(serializers.ModelSerializer):
bar = serializers.PrimaryKeyRelatedField(read_only=True)
class Meta:
model = StoreContact
fields = ('numberType', 'number', "bar")
class BarSerializer(serializers.ModelSerializer):
storeOwner = serializers.PrimaryKeyRelatedField(read_only=True, default=serializers.CurrentUserDefault())
contact = BarContactSerializer(many=True, read_only=True,)
class Meta:
model = Bar
fields = ('name', 'storeOwner','contact')
views.py
class BarContact(generics.ListCreateAPIView):
queryset = StoreContact.objects.all()
serializer_class = BarContactSerializer
def perform_create(self, serializer):
user = self.request.user.id
try:
serializer.save(bar_barOwner=user)
except IntegrityError:
raise ValidationError('something is wrong')