Preventing django from appending “_id” to a foreign key field

后端 未结 2 562
-上瘾入骨i
-上瘾入骨i 2021-02-02 08:26

In django, if I set a field in a model to a foreign key, \"_id\" is appended to the name of that field. How can this be prevented?

相关标签:
2条回答
  • 2021-02-02 08:51

    You can set the field's db_column attribute to whatever you'd like.

    0 讨论(0)
  • 2021-02-02 09:01

    When using the foreign field in a model, Django creates two fields: One for the actual link, and one that references the other model.

    class A(Model):
        i = IntegerField()
    
    class B(Model):
        a = ForeignKey(A)
    

    In B there is now two fields: a and a_id. a_id is the unique id as stored in the database, while a can be used to directly access the fields in A, like this:

    b = B.objects.get(...)
    b.a.i = 5;   # Set the field of A
    b.a.save()   # Save A
    
    0 讨论(0)
提交回复
热议问题