【发布时间】:2012-08-13 06:23:45
【问题描述】:
鉴于下面的示例代码,验证每个 account 不存在重复的 code 的最佳方法是什么?
型号
class Post(models.Model):
account = models.ForeignKey('Account', editable=False)
code = models.CharField()
class Meta:
unique_together = ('account', 'code')
表格
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ('code',)
查看
def post_add(request):
try:
account = Account.objects.get(membership__user=request.user)
except:
login_url = reverse('login') + ('?next=%s') % request.path
return HttpResponseRedirect(login_url)
post = Post()
if request.method == "POST":
post_form = PostForm(request.POST, prefix='post')
if post_form.is_valid():
post = post_form.save(commit=False)
post.account = account
post.save()
# other code
我找到了一些类似于使用 clean_code() 的答案,但 account 在这一点上似乎不存在。你有什么建议?
【问题讨论】:
标签: django django-models django-forms django-validation