-1
シリアライザでPersonデータをEmployeeに表示しようとしましたが、シリアライザEmployeeSerializer
のフィールドpersons
の値を取得しようとしたときにこのエラーAttributeErrorが発生しました。 シリアル化フィールドの名前が正しくない可能性があり、Employee
インスタンスの属性またはキーと一致しない可能性があります。 元の例外テキストは 'Employee'オブジェクトに属性 'persons'がありませんでした。ここでDjangoシリアライザ、foreignkeysエラー
は私の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')
だそれはので、私はforeingキーを呼び出す方法を取得いけないジャンゴに取り組んで私の最初の時間です。 私のデータベースに私は3つの外部キー(ユーザー、人、支店)を持つテーブルEmployeeを持っています ありがとう!
に多くを変更することができ、従業員オブジェクトと関連するであろうから、私は仮定しますPerson iのデータはすべてのフィールドを返す必要があり、シリアライザでは1つずつ追加する必要がありますか? – Akarok
申し訳ありませんが、私はあなたの質問を誤解しました。私はあなたが望む方法でそれを編集しました。あなたは実際にそれを正しく使用しますが、外来キーのフィールドをシリアル化するときには、関連する名前ではなく実際のフィールド名を使用する必要があります –