2011-11-22 34 views

回答

28

您可以在现场的db_column属性设置为任何你想。

+0

这样做。谢谢! –

+0

有一个像FK_AUTO_ID = False这样的设置会非常有用,我碰巧正在与一个遗留数据库进行集成,这个数据库必须编写非干性代码,比如basiscd = ForeignKey('...',db_column ='basiscd',related_name = 'basiscd',它有点恼人,表格在并行场景中有auto_id = False –

+0

甚至更​​好FK_AUTO_ID ='cd'在我的例子中,这个项目中的所有FK都拥有这个约定,这不同于Django的默认(假设FK_AUTO_ID ='_ id')。 –

2

在模型中使用外部字段时,Django会创建两个字段:一个用于实际链接,另一个用于引用另一个模型。

class A(Model): 
    i = IntegerField() 

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

B现在有两个字段:aa_ida_id是存储在数据库中的唯一ID,而a可以用来直接访问字段A,像这样:

b = B.objects.get(...) 
b.a.i = 5; # Set the field of A 
b.a.save() # Save A