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")
我将有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节点)