第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Django 過濾外鍵項

Django 過濾外鍵項

我制作簡單的日常清潔檢查應(yīng)用程序。該應(yīng)用程序很簡單,用戶觀察某些區(qū)域并檢查這些區(qū)域是否干凈。經(jīng)過所有檢查后,用戶需要向批準(zhǔn)其日常清潔工作的當(dāng)局報告。這里的權(quán)威機(jī)構(gòu)是創(chuàng)建者、檢查者和簽名者。這里的 cln_daily 模型代表日常清潔工作,將有來自用戶模型的制造者、檢查者和簽名者。我有一個名為user的應(yīng)用程序,它在model.py中對用戶模型進(jìn)行了定制class User(AbstractUser):    username = models.CharField(max_length=50, unique=True)    email = models.EmailField(_('email address'), unique=True)    phone = models.IntegerField(_('phone number'), unique=True, blank=True, null=True)該用戶與組查詢集具有多對多關(guān)系:創(chuàng)建者、檢查者、簽名者>>> print(Group.objects.all()) <QuerySet [<Group: maker>, <Group: checker>, <Group: signer>]>在另一個名為clean的應(yīng)用程序中,我有cln_daily模型,該模型與基于其組的用戶模型具有外鍵關(guān)系。class cln_daily(models.Model):   .   .   user_maker = models.ForeignKey(User,verbose_name="Maker's Signature",on_delete=models.CASCADE, related_name="makerSignature", blank=True, null=True,)   user_checker = models.ForeignKey(User, verbose_name="Checker's Signature",on_delete=models.CASCADE, related_name="checkerSignature", blank=True, null=True)   user_signer = models.ForeignKey(User, verbose_name="Signer's Signature",on_delete=models.CASCADE, related_name="signerSignature", blank=True, null=True)所以我的意思是user_maker查詢集具有僅屬于組maker 的用戶。user_checker具有僅屬于組checker 的用戶,而user_signer查詢集具有僅屬于組signer 的用戶。如何在該model.py中表達(dá)過濾后的用戶模型?
查看完整描述

3 回答

?
繁星淼淼

TA貢獻(xiàn)1775條經(jīng)驗 獲得超11個贊

經(jīng)過長時間的尋找。我通過用表格解決它來欺騙它


class MCSForm(forms.ModelForm):

    class Meta:

        model = cln_daily

        fields = ("__all__")

    def __init__(self, *args, **kwargs):

        super().__init__(*args, **kwargs)

        self.fields['user_maker'].queryset = User.objects.filter(groups__name='maker')

        self.fields['user_checker'].queryset = User.objects.filter(groups__name='checker')

        self.fields['user_signer'].queryset = User.objects.filter(groups__name='signer')


查看完整回答
反對 回復(fù) 2023-10-31
?
茅侃侃

TA貢獻(xiàn)1842條經(jīng)驗 獲得超21個贊

我想我了解了您的問題,您想以簡單的方式連接表格,對吧?,我建議看看這個和這個


并以這種方式修復(fù)這些模型關(guān)系,因為到時候這將是一個問題:


class cln_daily(models.Model):

   .

   .

   user_maker = models.ForeignKey(User,verbose_name="Maker's Signature",on_delete=models.CASCADE, related_name="makerSignature", blank=True, null=True,)

                                  ^^^^

   user_checker = models.ForeignKey(User, verbose_name="Checker's Signature",on_delete=models.CASCADE, related_name="checkerSignature", blank=True, null=True)

                                   ^^^^^

   user_signer = models.ForeignKey(User, verbose_name="Signer's Signature",on_delete=models.CASCADE, related_name="signerSignature", blank=True, null=True)

                                   ^^^^

最好不要使用in User,或者使用此模式作為 str (因為你必須先將它導(dǎo)入到你的代碼中):ForeignKeyFieldget_user_model()


class cln_daily(models.Model):

   .

   .

   user_maker = models.ForeignKey('myapp.User',verbose_name="Maker's Signature",on_delete=models.CASCADE, related_name="makerSignature", blank=True, null=True,)

   user_checker = models.ForeignKey('myapp.User', verbose_name="Checker's Signature",on_delete=models.CASCADE, related_name="checkerSignature", blank=True, null=True)

   user_signer = models.ForeignKey('myapp.User', verbose_name="Signer's Signature",on_delete=models.CASCADE, related_name="signerSignature", blank=True, null=True)

因為如果你是 django 的新手,遲早會出現(xiàn)遷移問題


查看完整回答
反對 回復(fù) 2023-10-31
?
尚方寶劍之說

TA貢獻(xiàn)1788條經(jīng)驗 獲得超4個贊

我有更好的答案,而不是用形式來欺騙他們。在 FKField 中使用limit_choices_to


User = get_user_model()

class cln_daily(models.Model):

   .

   .

   user_maker = models.ForeignKey(User,verbose_name="Maker's Signature",on_delete=models.CASCADE, related_name="makerSignature", blank=True, null=True,limit_choices_to={'groups__name':'maker'})

   user_checker = models.ForeignKey(User, verbose_name="Checker's Signature",on_delete=models.CASCADE, related_name="checkerSignature", blank=True, null=True,limit_choices_to={'groups__name':'checker'})

   user_signer = models.ForeignKey(User, verbose_name="Signer's Signature",on_delete=models.CASCADE, related_name="signerSignature", blank=True, null=True,limit_choices_to={'groups__name':'signer'})




查看完整回答
反對 回復(fù) 2023-10-31
  • 3 回答
  • 0 關(guān)注
  • 188 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號