-1
在串行器即時試圖顯示人員數據到員工,但即時獲取此錯誤AttributeError當試圖獲取字段persons
在串行器EmployeeSerializer
上的值。 串行器字段可能命名錯誤,並且不匹配Employee
實例上的任何屬性或密鑰。 原始異常文本爲:'員工'對象沒有'人員'屬性。Django串行器,外鍵錯誤
這裏是我的models.py
class Person(models.Model):
id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=50)
curp = models.CharField(max_length=50)
rfc = models.CharField(max_length=12)
gender = models.CharField(max_length=20)
class Employee(models.Model):
id = models.IntegerField(primary_key=True)
joining_date = models.DateField()
salary = models.DecimalField(18, decimal_places=2, max_digits=50)
status = models.IntegerField()
person = models.ForeignKey(Person, related_name='persons', on_delete=models.CASCADE)
user = models.ForeignKey(User)
branch = models.ForeignKey(Branch)
串行器
class PersonSerializer(serializers.ModelSerializer):
class Meta:
model = Person
fields = ('name', 'curp', 'rfc', 'gender')
class EmployeeSerializer(serializers.ModelSerializer):
persons = PersonSerializer(many=True)
class Meta:
model = Employee
fields = ('persons')
這是我第一次在Django的工作,所以我不明白如何調用foreing鍵。 在我的數據庫中,我有3個外鍵(用戶,人員和分支)的表員工 謝謝!
所以,如果我想返回所有來自Person的數據將不得不添加返回中的所有字段,並在序列化程序中逐個添加? – Akarok
對不起,首先我誤解了你的問題,我按照你想要的方式編輯它。您實際上正確使用它,但是當序列化外鍵字段時,您需要使用實際字段名稱而不是相關名稱 –