我目前有三种型号:
class Request(models.Model):
requester=models.CharField()
dateRequested = models.DateField(auto_now=True)
title= models.CharField(max_length=255)
description = models.TextField()
class RequestType(models.Model):
requestType=models.CharField('Request Type', max_length=256)
class RequestTypeInfo(models.Model):
requestType=models.ForeignKey('RequestType', verbose_name='Request Type')
title = models.CharField('title', max_length=256)
info = models.CharField(max_length=256, blank=True)
这个想法是每个请求都显示所有类型的请求共有的信息,并根据所选的请求类型向要填写的用户显示其他字段。
如何更改模型以允许此操作以及如何编写视图以向用户显示表单,以便附加信息与基本请求一起显示。有第二个视图要求提供更多信息会不会更好。
最终目标是管理员可以创建新的请求类型,而无需在python中创建模型,只需添加新请求并添加任何其他信息字段。
答案 0 :(得分:1)
您是说要使用RequestType作为中间模型,从Request到RequestTypeInfo创建多对多关系?
class Request(models.Model):
requester=models.CharField()
dateRequested = models.DateField(auto_now=True)
title= models.CharField(max_length=255)
description = models.TextField()
request_type = models.ManyToManyField(RequestType, through='RequestTypeInfo')
class RequestType(models.Model):
requestType=models.CharField('Request Type', max_length=256)
class RequestTypeInfo(models.Model):
requestType=models.ForeignKey('RequestType', verbose_name='Request Type')
title = models.CharField('title', max_length=256)
info = models.CharField(max_length=256, blank=True)
在澄清后,我们可以讨论内联管理模型。