【发布时间】:2018-03-12 12:31:46
【问题描述】:
我有一个类User,它继承自另一个名为accounts 的不同django 应用程序中的AbstractUser。然后我在user 字段的Employee 类中引用了它。问题是我无法在 django_rest 的 API 视图中查看用户的全名。
class User(AbstractUser):
def get_full_name(self):
full_name = '%s %s' % (self.last_name.upper(), self.first_name)
return full_name.strip()
class Employee(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE)
tax_id_number = models.CharField(
max_length=20, null=True, verbose_name='Tax ID')
account_number = models.CharField(
max_length=20, null=True, verbose_name='Account Number')
joining_date = models.DateField(null=True, verbose_name="Joining Date")
designation = models.ForeignKey(Group,related_name='designation',blank=True)
department = models.ForeignKey(Group,related_name='department',blank=True)
员工序列化器如下
class EmployeeSerializer(serializers.ModelSerializer):
# TODO: Define serializer fields here
user = UserSerializer
# designation = GroupListSerializer()
# department = GroupListSerializer()
class Meta:
model = Employee
# fields = '__all__'
fields = ['user','tax_id_number','account_number','joining_date','designation','department']
def create(self, validated_data):
user_data = validated_data.pop('user')
employee = Employee.objects.create(**validated_data)
for user in user_data:
user, created = User.objects.get()
employee.user.add(user)
return employee
【问题讨论】:
-
PL.发布您编写的序列化程序。
标签: serialization django-models django-rest-framework