Python 将外键(品牌)应用到用户品牌对象中
我对以下行有问题:user_brand=UserBranduser=user,brand=serializers,我一直收到以下错误:Python 将外键(品牌)应用到用户品牌对象中,python,django,Python,Django,我对以下行有问题:user_brand=UserBranduser=user,brand=serializers,我一直收到以下错误: Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/handlers/base.py", line 149, in get_response
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/handlers/base.py", line 149, in get_response
response = self.process_exception_by_middleware(e, request)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/handlers/base.py", line 147, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
return view_func(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/views/generic/base.py", line 68, in view
return self.dispatch(request, *args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/rest_framework/views.py", line 466, in dispatch
response = self.handle_exception(exc)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/rest_framework/views.py", line 463, in dispatch
response = handler(request, *args, **kwargs)
File "/Users/jeansymolanza/projects/adsoma-api/api/views.py", line 137, in post
return self.create(request, *args, **kwargs)
File "/Users/jeansymolanza/projects/adsoma-api/api/views.py", line 154, in create
user_brand = UserBrand(user=user, brand=serializers)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/db/models/base.py", line 439, in __init__
setattr(self, field.name, rel_obj)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py", line 207, in __set__
self.field.remote_field.model._meta.object_name,
ValueError: Cannot assign "<module 'rest_framework.serializers' from '/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/rest_framework/serializers.py'>": "UserBrand.brand" must be a "Brand" instance.
models.py
您正在尝试将BrandSignupSerializer对象作为品牌传递给UserBrand构造函数。。。你需要一个品牌对象。您应该能够通过使用替换线路来解决此问题
user_brand = UserBrand(user=user, brand=serializer.instance)
class Brand(models.Model):
"""
Brand model
"""
id = models.UUIDField(primary_key=True, default=uuid4, editable=False)
name = models.CharField(max_length=255, null=True, default=None)
brand = models.CharField(max_length=255, null=True, default=None)
phone = models.CharField(max_length=255, null=True, default=None)
website = models.CharField(max_length=255, null=True, default=None)
class Meta:
verbose_name_plural = "Brands"
def __str__(self):
return "%s" % self.brand
class UserBrand(models.Model):
"""
User brand model
"""
id = models.UUIDField(primary_key=True, default=uuid4, editable=False)
user = models.ForeignKey(User, null=False, on_delete=models.CASCADE)
brand = models.ForeignKey(Brand, null=False, on_delete=models.CASCADE)
class Meta:
verbose_name_plural = "User Brands"
def __str__(self):
return "%s - %s" % (self.user, self.brand)
user_brand = UserBrand(user=user, brand=serializer.instance)