我试图链接“所有者”'我的模型字段到AbstractUser。我需要它自动完成,我能够自己做的唯一想法就是允许用户在每个现有用户之间选择,而不是我想要的。我想没有一个字段来操作,但是一个结果序列化程序,其id或用户名为User,它添加了模型。我试图找几天的解决方案,我已经尝试过组合ForeignKey,PrimaryKeys,OneToOneField,HiddenField,get_user,perform_create,但我确实做错了什么,而我&#39 ;我几乎失去了它。我尝试的最后一件事就是像DRF QuickStart教程那样在视图中进行def_perform,但没有结果。
我添加了一些代码示例以便更容易理解:
我的 AbstractUser 模型:
from django.db import models
from django.contrib.auth.models import AbstractUser
class UserProfile(AbstractUser):
username = models.CharField(max_length=20, unique=True)
...
我在设置中将它添加到AUTH_USER_MODEL =。 还有其他型号我想与用户链接:
from django.db import models
from users.models.user import UserProfile
class MyPhoto(models.Model):
owner = models.ForeignKey(UserProfile, related_name='photos', on_delete=models.CASCADE, null=True)
image = models.ImageField(upload_to='Images')
serializer.py
class MyPhotoSerializer(serializers.ModelSerializer):
owner = serializers.ReadOnlyField(source='owner.username')
class Meta:
model = MyPhoto
fields = ('pk', 'image', 'owner')
def create(self, validated_data):
photo = MyPhoto.objects.create(
image=validated_data['image']
)
photo.save()
return photo
views.py
class UpdateMyPhotoViewSet(viewsets.ModelViewSet):
queryset = MyPhoto.objects.all()
serializer_class = MyPhotoSerializer
permission_classes = (IsAuthenticated,)
def perform_create(self, serializer):
serializer.save(created_by=self.request.user)
现在我无法看到所有者字段结果。
提前致谢。