class Appname(models.Model):
name=models.CharField(max_length=150,blank=False,null=False,help_text='Add your new App')
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse("dashapp:view")
class Adspace(models.Model):
name=models.ForeignKey(Appname,related_name='adspaces', null=True, default=None,on_delete=models.CASCADE)
ad_space=models.CharField(max_length=150,blank=False,null=False)
def __str__(self):
return self.ad_space
def get_absolute_url(self):
return reverse("dashapp:view")
我使用两个模型的CreateView创建一个表单。对于First模型,我保存应用程序名称,然后使用ListView创建应用程序名称的列表视图并显示它们。当我从显示的列表中单击一个应用程序时,它将带我进入下一个表格,该表格适用于下一个型号Adspace
。现在,我想在第二个模型的表单打开时,名称部分自动填充我单击该表单所要使用的应用程序的名称。我应该进行何种查询才能使其成为可能。请用答案解释一下。 >
答案 0 :(得分:0)
如果您使用的是通用CreateView
,则可以覆盖get_initial()
方法来为要创建的对象设置初始值:
def get_initial(self):
# assuming the Appname id is passed in the view's kwargs as "app_id"
try:
app = Appname.objects.get(id=self.kwargs['app_id'])
return super().get_initial().update({'name': app})
except Appname.DoesNotExist:
return super().get_initial()