允许在一个视图中通过外键创建多功能模型(使用通用createview)

时间:2018-11-22 14:35:30

标签: django django-generic-views

使用django,我正在寻找一种轻松创建模型的方法,该模型仅使用通用创建视图在一个视图中使用外键指向另一个模型。

举个例子,应该更容易理解。

models.py

# models.py
from django.contrib.auth.models import User

class Group(models.Model):
    name = models.CharField(
    _("Group name"), max_length=128, blank=False, null=False)
    comment = models.TextField(max_length=512, blank=False, null=False)

    def get_absolute_url(self):
        return reverse('group_detail', kwargs={'pk': self.pk})

    def __str__(self):
        return _("%(name)s Group") % {'name': self.name}


class UserAcl(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    group = models.ForeignKey(Group, blank=True, null=True, on_delete=models.SET_NULL)
    comment = models.CharField(
   _("comment"), max_length=128, blank=False, null=False)

views.py

# views.py
class SettingsView(LoginRequiredMixin, UserPassesTestMixin, generic.ListView):
    model = UserAcl
    template_name = 'my_app/settings.html'

当我显示该视图时,我想访问User django类的所有字段,Group类的所有字段,以及UserAcl类的所有字段。 因此,一次将创建3个对象: -用户 -组 -和UserAcl。 目前,只有3个字段(来自UserAcl的字段)可见(可以选择用户/组),这些字段已经存在于数据库中。

我该怎么做?你能帮我/建议我吗? 谢谢

0 个答案:

没有答案