我正在制作a task tracker webapp(也可以使用the full source code),并且我有一个数据库结构,其中每个任务都有标题,描述和一些实例,可以分别将其标记为不完整/不完整:
class Task(models.Model):
title = OneLineTextField()
description = models.TextField(blank=True)
class TaskInstance(models.Model):
task = models.ForeignKey(Task, on_delete=models.CASCADE)
is_complete = models.BooleanField()
可以单独共享任务和实例,尽管对实例的访问应隐含对任务的读取访问。这是针对教室情况的,教师在其中创建任务并将其分配给学生。
class TaskPermission(models.Model):
task = models.ForeignKey(Task, on_delete=models.CASCADE, related_name='permissions')
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='task_permissions_granted')
shared_by = models.ForeignKey(User, on_delete=models.PROTECT, null=True, related_name='task_permissions_granting')
can_edit = models.BooleanField(default=False)
class Meta:
unique_together = 'task', 'user', 'shared_by',
class TaskInstancePermission(models.Model):
task_instance = models.ForeignKey(TaskInstance, on_delete=models.CASCADE, related_name='permissions')
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='task_instance_permissions_granted')
shared_by = models.ForeignKey(User, on_delete=models.PROTECT, null=True, related_name='task_instance_permissions_granting')
can_edit = models.BooleanField(default=False)
class Meta:
unique_together = 'task_instance', 'user', 'shared_by',
我的问题是如何为
TaskInstance
创建一个带有其is_complete
字段以及Task
的title
和description
的表单。这样的事情行吗?还是我需要实现自己的save
和clean
方法?class TaskForm(ModelForm):
class Meta:
model = TaskInstance
fields = ('is_complete', 'task__title', 'task__description')
最佳答案
我认为inlineformset_factory
是我想要的!
实际上,它似乎没有用:它用于相同类型的多种形式,而不是不同类型的……
关于python - Django形式:外键的引用字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55326345/