Django:是否可以通过模型的PK将模型的FK链接到一对多关系?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django:是否可以通过模型的PK将模型的FK链接到一对多关系?相关的知识,希望对你有一定的参考价值。

我将有两个具有多对多关系的模型(项目和用户)。>

Django将创建具有ID和2 FK(项目和用户)的隐式直通模型。

是否可以将第三个模型应用程序链接到贯通模型?

我可以在应用程序中声明链接到直通型号ID的FK吗?

编辑:

forms.py

NAME = Thesaurus.options_list(2,'fr')
ACCESS = Thesaurus.options_list(3,'fr') 
ApplicationFormset = inlineformset_factory(
    Utilisateur, Application, 
    fields=('app_app_nom','app_dro'),
    widgets=
        'app_app_nom': forms.Select(choices=NAME), # name in Application model
        'app_dro': forms.Select(choices=ACCESS) # access_right in Application model
    ,
    extra=3,
    can_delete=True,
)

views.py

class UtilisateurCreateView(CreateView):
    model = Utilisateur
    fields = ['uti_nom','uti_pre','uti_mai','uti_sit','uti_pro']

    def get_context_data(self, **kwargs):
        data = super().get_context_data(**kwargs)
        if self.request.POST:
            data["utilisateur"] = self.request.user.username # nom de l'utilisateur connecté
            data["projet"] = get_object_or_404(Projet, pro_ide = self.request.GET['projet'])
            data["application"] = ApplicationFormset(self.request.POST)
            data["user_profil"] = self.request.session.get('user_profil')
        else:
            data["application"] = ApplicationFormset()
        return data

    def form_valid(self, form):
        context = self.get_context_data()
        application = context["application"]
        user_profil = context["user_profil"]
        self.object = form.save(commit=False)
        self.object.pro_ide = context["projet"]
        self.object.uti_log = context["utilisateur"]
        self.object.uti_val = 0 
        self.object.uti_val_dat = timezone.now()
        self.object.save()

        if application.is_valid():
            application.instance = self.object
            application.save()

    def get_success_url(self):
        return reverse("project:index")

enter image description hereenter image description hereenter image description hereenter image description here

我将有2个模型(项目模型和用户模型)与多对多关系相关联。 Django将使用ID和2 FK(项目和用户)创建隐式直通模型。是否可以有第三个...

答案

我可以在应用程序中声明链接到直通型号ID的FK吗?

以上是关于Django:是否可以通过模型的PK将模型的FK链接到一对多关系?的主要内容,如果未能解决你的问题,请参考以下文章

获取模型对象的 id,它是另一个模型对象 django 的 FK

Django 3 - 使模型的 FK 下拉列表仅显示当前用户的数据

Django Admin Cookbook-35如何使用带有大量对象的FK管理模型

python Django Views - 如何将django对象数组序列化为平面JSON(排除模型,pk和fields节点)

是否可以在实体框架中将表FK链接到另外两个PK?

具有标记为 pk + fk 的字段的表上的 Django HyperlinkedModelSerializer