0
我发现,在本质上类似于这几个职位,但他们还没有达到100%的清楚,所以这里有云:的Django的ModelForm干净
在我的意见我有一个add_album
观点,即允许用户上传一个相册。我想要做的是清理表格()以检查这张专辑是否对于艺术家而言是唯一的。
我看起来像这样:
class AlbumForm(ModelForm):
class Meta:
model = Album
exclude = ('slug','artist','created','is_valid', 'url', 'user', 'reported')
def clean_name(self):
super(AlbumForm, self).clean()
cd = self.cleaned_data
try:
Album.objects.get(slug=slugify(cd['name']), artist=artist)
raise forms.ValidationError("Looks like an album by that name already exists for this artist.")
except Album.DoesNotExist:
pass
return cd
所以这是沿着想什么,我做的东西线。
我的问题是:有没有办法将artist
对象从我的视图中传递到表单中,因此我可以在clean
方法中使用artist
实例?
我认为我在重写方法ModelForm
,但我不确定如何去做。
我想这一点,但它似乎并没有工作。我的“艺术家”字段是艺术家模型的外键。所以我这样做:unique_together =('艺术家','slu'') - 不是100%如何这应该工作。 – tsoporan 2009-12-18 15:49:23
尝试'unique_together =(“artist_id”,“slug”)'。不完全确定'unique_together'是否适用于ForeignKeys。 – 2009-12-18 15:56:32
哦,嘿,我傻了,我忘了这是一个数据库级别的变化(没有运行迁移)。它的工作,谢谢,这是好多了。 – tsoporan 2009-12-18 16:11:06