2

code以下のコード例を考えると、ごとに重複がないことを検証する最良の方法は何でしょうaccountか?

モデル

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

using に似たものを示唆する回答を見つけましたが、その時点では存在してclean_code()accountないようです。何を指示してるんですか?

4

1 に答える 1

1

ドキュメントからの関連例は次のとおりです

基本的に clean() は、cleaned_data を介してすべてのフィールドにアクセスできます。これは、フォーム内の検証のためのアプローチです。

モデルでやりたい場合は、pre_save を見てください。

于 2012-08-16T20:38:04.590 に答える