问题描述
我有一个连接到模型“配置文件”的多对多关系。这个想法是让每个用户都可以根据自己的需要选择尽可能多的 SDG,并在它们之间建立联系。但是,每当我保存此关系时,新对象都不会添加到数据库中,但不会创建错误。如果有人知道为什么会发生这种情况,那就太棒了。所以这是我的代码:
models.py
class Profile(models.Model):
id = models.CharField(max_length=50,primary_key= True)
user = models.OnetoOneField(User,on_delete=models.CASCADE)
sdg = models.ManyToManyField(SDG,through="SDG_User")
background_picture = models.ImageField(upload_to=profile_pic_directory_path,default="Null")
profile_picture = models.ImageField(upload_to=profile_pic_directory_path,default="Null")
class SDG_User(models.Model):
sdg = models.ForeignKey(SDG,on_delete=models.CASCADE)
user_id = models.ForeignKey(Profile,on_delete=models.CASCADE)
class SDG(models.Model):
title = models.CharField(max_length=50,unique=True)
contenu = models.TextField(default="NA")
image = models.ImageField(upload_to='sdgs/')
def __str__(self):
return '{} - {}'.format(self.title,self.contenu)
forms.py
class SDGForm(forms.ModelForm):
sdg = forms.CheckBoxSelectMultiple()
class Meta:
model = Profile
fields = ('sdg',)
views.py
def edit_profile_sdgs(request):
if request.method == 'POST':
sdg_form = SDGForm(request.POST,instance=request.user)
if sdg_form.is_valid():
sdg = sdg_form.save(commit=False)
sdg.user = request.user
sdg.save()
sdg_form.save_m2m()
messages.success(request,'if')
return redirect(reverse(("accounts:user_profile"),args=[request.user.username]))
else:
sdg_form = SDGForm(instance=request.user)
return render(request,'dist/inside/profile/edit/edit_sdg.html',{ 'sdg_form': sdg_form,})
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)