카테고리 만드는데 질문드립니다
model.py
class Category(models.Model):
title = models.CharField(max_length=100)
#admin으로만 만듦
def __str__(self):
return self.title
class Question(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE, related_name='author_question')
subject = models.CharField(max_length=200)
content = models.TextField()
create_date = models.DateTimeField()
modify_date = models.DateTimeField(null=True, blank=True)
voter = models.ManyToManyField(User, related_name='voter_question')
category = models.ForeignKey(Category, on_delete=models.CASCADE)
def __str__(self):
return self.subject
question_views.py
@login_required(login_url='common:login')
def question_create(request):
"""
pybo 질문등록
"""
category_list = Category.objects.all()
if request.method == 'POST':
form = QuestionForm(request.POST)
category_value = request.POST['category']
if form.is_valid():
question = form.save(commit=False)
question.author = request.user # 추가한 속성 author 적용
question.create_date = timezone.now()
question.category.title = "여기다 무엇을 넣어야할까요.." # category_value 를 그대로 전달해보았는데 생성이 안돼요 ㅜㅜ
question.save()
return redirect('pybo:index')
else:
form = QuestionForm()
category_value = 'Q&A 게시판'
context = {'form': form, 'category_list':category_list, 'category_value':category_value}
return render(request, 'pybo/question_form.html', context)
pybo/question_form.html
셀렉트 박스를 선택하면 제이쿼리로 인풋값의 밸류가 바뀌어 POST하는 방식을 따라했습니다 name은 category고
폼이 포스트되면 선택된 카테고리를 request.POST['category']를 하여 category_value에 저장시켰습니다
그리고 POST방식일때 질문을 작성하는 방식이여서 유효성검사후 question.category.title에 category_value를 할당시키려고
if form.is_valid():
question = form.save(commit=False)
question.author = request.user # 추가한 속성 author 적용
question.create_date = timezone.now()
<-- edit start-->
question.category.title = category_value
<--edit end-->
question.save()
return redirect('pybo:index')
를 주었으나 필드에 저장이 안되는거같아요..
+p.s./ question,category.title 말고 question.category_id에 카테고리 아이디를 입력해보니까 되는데 이건또 ㅠㅠ.. 어질어질하네요
ksh3546 님 980
M 2021년 3월 22일 11:32 오후
1개의 답변이 있습니다. 1 / 1 Page
Question에 대입하는 category는 이미 만들어진 카테고리입니다.
따라서 question.category = category
처럼 카테고리 객체를 대입하셔야 합니다.
물론 category라는 객체는 입력으로 받은 값으로 먼저 조회해야 하구요.
박응용 님
2021년 3월 23일 12:11 오전