Django 多個字段關(guān)聯(lián)同一外鍵

Django 多個字段關(guān)聯(lián)同一外鍵
fields.E302,303,304 錯誤

 
from django.db import models
 
 
class ops(models.Model):
    name = models.CharField(max_length=30)
 
 
class shift(models.Model):
    shift_class = models.CharField(max_length=30)
 
 
class ops_shift(models.Model):

    多個字段對應(yīng)同一個外鍵的情況下會報錯
 
    原因是指向同一模型的三個外鍵反向關(guān)聯(lián)名稱產(chǎn)生了沖突,shift模型對Day1字段的反向關(guān)聯(lián)名稱為ops_shift_set(),
    對Day2的反向關(guān)聯(lián)名稱也是ops_shift_set(),對Day3的反向關(guān)聯(lián)名稱還是ops_shift_set()。
 
    解決方法:給models.ForeignKey()加入related_name參數(shù),定義不同的關(guān)聯(lián)名稱。
 
    db_column屬性是用來定義在數(shù)據(jù)庫中此字段的名稱
    """
    ops_name = models.ForeignKey(ops,db_column='ops_name')
 
    Day1  = models.ForeignKey(shift,related_name='ops_shift_Day1',default='',db_column='Day1')
    Day2  = models.ForeignKey(shift,related_name='ops_shift_Day2',default='',db_column='Day2')
    Day3  = models.ForeignKey(shift,related_name='ops_shift_Day3',default='',db_column='Day3')
    Day4  = models.ForeignKey(shift,related_name='ops_shift_Day4',default='',db_column='Day4')
    Day5  = models.ForeignKey(shift,related_name='ops_shift_Day5',default='',db_column='Day5')
    Day6  = models.ForeignKey(shift,related_name='ops_shift_Day6',default='',db_column='Day6')
    Day7  = models.ForeignKey(shift,related_name='ops_shift_Day7',default='',db_column='Day7')
    Day8  = models.ForeignKey(shift,related_name='ops_shift_Day8',default='',db_column='Day8')
    Day9  = models.ForeignKey(shift,related_name='ops_shift_Day9',default='',db_column='Day9')
    Day10 = models.ForeignKey(shift,related_name='ops_shift_Day10',default='',db_column='Day10')
    Day11 = models.ForeignKey(shift,related_name='ops_shift_Day11',default='',db_column='Day11')
    Day12 = models.ForeignKey(shift,related_name='ops_shift_Day12',default='',db_column='Day12')
    Day13 = models.ForeignKey(shift,related_name='ops_shift_Day13',default='',db_column='Day13')
    Day14 = models.ForeignKey(shift,related_name='ops_shift_Day14',default='',db_column='Day14')
    Day15 = models.ForeignKey(shift,related_name='ops_shift_Day15',default='',db_column='Day15')
    Day16 = models.ForeignKey(shift,related_name='ops_shift_Day16',default='',db_column='Day16')
    Day17 = models.ForeignKey(shift,related_name='ops_shift_Day17',default='',db_column='Day17')
    Day18 = models.ForeignKey(shift,related_name='ops_shift_Day18',default='',db_column='Day18')
    Day19 = models.ForeignKey(shift,related_name='ops_shift_Day19',default='',db_column='Day19')
    Day20 = models.ForeignKey(shift,related_name='ops_shift_Day20',default='',db_column='Day20')
    Day21 = models.ForeignKey(shift,related_name='ops_shift_Day21',default='',db_column='Day21')
    Day22 = models.ForeignKey(shift,related_name='ops_shift_Day22',default='',db_column='Day22')
    Day23 = models.ForeignKey(shift,related_name='ops_shift_Day23',default='',db_column='Day23')
    Day24 = models.ForeignKey(shift,related_name='ops_shift_Day24',default='',db_column='Day24')
    Day25 = models.ForeignKey(shift,related_name='ops_shift_Day25',default='',db_column='Day25')
    Day26 = models.ForeignKey(shift,related_name='ops_shift_Day26',default='',db_column='Day26')
    Day27 = models.ForeignKey(shift,related_name='ops_shift_Day27',default='',db_column='Day27')
    Day28 = models.ForeignKey(shift,related_name='ops_shift_Day28',default='',db_column='Day28')
    Day29 = models.ForeignKey(shift,related_name='ops_shift_Day29',default='',db_column='Day29')
    Day30 = models.ForeignKey(shift,related_name='ops_shift_Day30',default='',db_column='Day30')
    Day31 = models.ForeignKey(shift,related_name='ops_shift_Day31',default='',db_column='Day31')
 
    class Meta:
        """
        在Django的后臺可以顯示此處定義的中文名稱
        """
        verbose_name=u'排班表'
        verbose_name_plural = u"排班表"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容