【发布时间】:2018-05-31 10:04:31
【问题描述】:
我有两个模型 Permit 和 Course。
class Permit(models.Model):
name = models.CharField(max_length=50)
skill_course = models.ManyToManyField(Skill, related_name="+", blank=True)
class Course(models.Model):
name = models.CharField(max_length=50)
skills = models.ManyToManyField(Skill, related_name="courses",blank=True,)
students = models.ManyToManyField(User, related_name="courses",blank=True,)
单击许可对象会显示动态获得许可的学生(在 UpdateView 中使用 GET 方法)。
如何与这些学生一起创建课程?(在 CreateView 中使用 POST 方法)
我必须在 2 个视图之间传递数据吗?我想创建一个 utils.py 文件,在那里创建一个包含数据的方法,我将在其他方法或类中重用,但类或函数将有 request 和 pk,我不知道如何返回 dict ,因为它应该有请求和模板吗?我被困在这里,非常感谢您的帮助,在此先感谢......
【问题讨论】:
-
您能解释一下为什么将
+用作related_name吗?这不是一个有效的 Python 标识符,这意味着当您想要获得课程许可时,它可能会导致很多问题。 -
通常您不会直接传递数据,而是在
POST请求中进行编码:例如带有许可名称/标识符的POST。 -
@WillemVanOnsem 使用“+”作为相关名称是有效的,用于不创建向后关系;请查看docs.djangoproject.com/en/2.0/ref/models/fields/…
标签: django python-3.x web-services dynamically-generated create-view