我正在django中构建用户个人资料,我希望用户输入他的技能。技能字段是模型名称ManyToMany
的{{1}}字段。下面显示了Skills
文件
models.py
如您所见,所有字段都设置为class UserProfile(models.Model):
name = models.CharField(max_length = 300, null = True, blank=True)
location = models.CharField(max_length=500, null=True, blank=True)
birthday = models.DateField(null = True, blank = True)
user = models.ForeignKey(User, unique=True)
skills = models.ManyToManyField(Skill, blank=True, null=True)
class Skill(models.Model):
name = models.CharField(max_length=50)
def __unicode__(self):
return u'%s' %(self.name)
。这是因为我将字段保持为空并希望用户在他/她想要的时候输入它们。所以我使用AJAX调用更新所有这些字段。我已设法编辑所有其他字段,但我不知道如何编辑null=True
我可以使用M2M field
获取与个人资料相关联的所有技能的列表,但我不知道如何更新此列表。我基本上想要从这个列表中添加或删除技能对象。我认为profile.skills.all()
中有一些东西可以用来编辑字段
非常感谢任何帮助。我还没有找到关于这个主题的任何内容。有一些关于使用ModelForm编辑此字段的信息,但没有关于编辑单个字段的信息。
答案 0 :(得分:1)
要编辑m2m中间表,请使用add
上的remove
和ManyRelatedManager
方法。
确实,django docs上google最困难的事情是manytomanyfield和其他连续字符串。我发表了关于formfield_for_manytomany
的博文,仅仅是出现在我自己的搜索结果中。