0
Djangoでnull ForeignKeyのデフォルト値を取得する方法を教えてください。例の場合:Djangoでnull ForeignKeyのデフォルト値を取得
class Owner(models.Model)
name = models.CharField(max_length=200, unique=True)
class Entity(models.Model):
name = models.CharField(max_length=200, unique=True)
owner = models.ForeignKey(Owner)
私はDRFを使用していますので、私はこのシリアライザを試してみました:
class EntitySerializer(serializers.ModelSerializer):
owner = serializers.SerializerMethodField(read_only=True)
def get_owner(self, obj):
if obj.owner:
return obj.owner_id
return -1
class Meta:
model = Entity
fields = ('id', 'name', 'owner')
私はowner_id
または何か他のものへのキーowner
を変更する場合、これは動作します。しかし、それは他のところで依存関係があるので、私はそれを行うことができません。
私はデータベースに設定したくないのですが、代わりに値をNULLにすることをデータベースに入れておきます。 – dnit13
シリアライザフィールドに 'default'属性を設定することを意味します。モデルではありません。添付されているドキュメントのリンクを確認してください。 – Sagar
はい、データの取得中にデフォルトが機能しません。まずそれを試してみるべきです。 – dnit13