我有两个模型。 Appname和Adspace,我在第二个模型中有一个Foreignkey对象,该对象连接到我的第一个模型。这是代码
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:space",kwargs={'pk':self.pk})
class Adspace(models.Model):
ad_space=models.CharField(max_length=150,blank=False,null=False)
app=models.ForeignKey('Appname', related_name='appnames',default=None, on_delete=models.CASCADE)
PID_TYPE = (
('FN','FORMAT_NATIVE'),
('FNB','FORMAT_NATIVE_BANNER'),
('FI','FORMAT_INTERSTITIAL'),
('FB','FORMAT_BANNER'),
('FMR','FORMAT_MEDIUM,RECT'),
('FRV','FORMAT_REWARDED_VIDEO'),
)
format_type=models.CharField(max_length=3,choices=PID_TYPE,default='FN',blank=False, null=False)
def __str__(self):
return self.ad_space
def get_absolute_url(self):
return reverse("dashapp:view")
class AdspaceForm(forms.ModelForm):
class Meta:
model=Adspace
fields=('ad_space',)
class space(LoginRequiredMixin,CreateView):
form_class=forms.AdspaceForm
model=Adspace
现在我无法填写我的表单,因为它说app_id不能为null,并且允许用户输入。我希望被点击的应用程序在URL中有其ID(因为我正在通过它)。 我该怎么办,它会自动传递与URL中传递的ID相同的ID号。
答案 0 :(得分:0)
在视图中定义form_valid
并将其设置在那里。
def form_valid(self, form):
form.instance.app_id = self.kwargs["app_id"]
return super().form_valid(form)