2
아래의 예제 코드에서 code
/account
이 중복되지 않았 음을 확인하는 가장 좋은 방법은 무엇입니까?Django - unique_together 유효성 검사
모델
class Post(models.Model):
account = models.ForeignKey('Account', editable=False)
code = models.CharField()
class Meta:
unique_together = ('account', 'code')
양식 somethi을 제안
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
은 그 시점에 존재하지 않는 것 같습니다. 너는 무엇을 제안 하는가?
나는 당신이 말하는 것을 이해하지만 '계좌'는 존재하지 않는 것 같습니다. – RS7
아, 알겠습니다. meta : fields = ('code',)에서 계정을 포함하지 않는 이유는 무엇입니까? 이렇게하면 코드의 일부가됩니다. 숨길 수 있습니다. –