2014-02-10 21 views
0

모델을 기반으로 장고에서 양식을 작성하려고합니다. 이 양식에는 기본적으로 2 개의 정보가 포함되어야합니다. 검토중인 제품에 대한 검토 텍스트와 태그입니다. 사용자 인터페이스가 향상되어 데이터베이스에 이미 존재하는 태그를 양식에 표시해야 사용자를 확인란으로 사용할 수 있습니다. 그러나이 목록에없는 다른 태그를 포함하려는 경우 가능합니다. 새 태그 용 필드는 텍스트 필드입니다. 삽입 된 새 태그는 쉼표로 구분되며 태그 관리에는 taggit이 사용됩니다. 선물 태그의 수는 제품에 따라 차이가 확률 적 요소가 검토되고 있지만 최소 0이고 최대 값은양식의 필드 사용자 정의

이 10. 검토를 위해 모델입니다 :

class Review(models.Model): 
    user = models.ForeignKey(User, related_name="user_blog") 
    tag = TaggableManager() 
    product = models.ForeignKey(Product) 
    review_text = models.TextField() 
    created = models.DateTimeField(auto_now=True, auto_now_add=False) 
    updated = models.DateTimeField(auto_now=True, auto_now_add=True) 
    hashtag = models.ForeignKey(Hashtag) 

    def __unicode__(self): 
     return u'%s' % self.review_text 

    def getTags(prodid): 
     return Review.objects.filter(product=prodid) 

이 양식 I는 생성 :

<form class="form-inline"> 
<strong><h3>Revise este produto</h3></strong><br> 

{% for tag in tags %} 
<label class="checkbox"> 
<input type="checkbox" value=""> #Ótimo 
</label> 
{% endfor %} 

<br/> 
<p>&nbsp;</p> 
<label>Envie outras hashtags</label> <br/> 
<input type="text" class="span3" placeholder="exemplo1, exemplo2"> 
<br /> 
<p>&nbsp;</p> 
<label>Deixe sua opinião (opcional)</label> <br/> 
<textarea name="Text1" cols="80" class="span3" rows="5" placeholder="Digite sua opinião aqui"></textarea> 
<br/> 
<p>&nbsp;</p> 
<button class="btn btn-primary" type="submit"><h4>Pronto!</h4></button> 
</form> 

내가 형태를 구현하기 위해 훨씬 더 쉽게하기 위해 소리 장고 양식에 대해 읽을 수 있지만 내가 HTML에 직접 여기처럼 내가 태그 필드를 사용자 정의하는 방법을 몰라, 어느 쪽도 방식을 변경할 수 없습니다 필드 레이블 (레이블은 포르투갈어, 모든 서버 측은 영어로되어 있습니다).

form.py를 구현하려했지만 "review_text"의 레이블이 변경되지 않았으며 이전에 말했듯이 양식의 데이터베이스에 이미있는 모든 태그를 표시하는 방법을 알지 못합니다. 사용자가 모든 체크 박스를 그룹화하고 새 태그 필드와 연결하여이를 databse에 저장하십시오.

def single_product(request, slug): 
    product = get_object_or_404(Product, slug=slug) 
    prod = Product.objects.get(slug=slug) 
    reviews = Review.objects.get(product=prod.id) 
    reviewmatrix = {} 
    i = 0 
    try: 
     for rev in reviews: 
      reviewmatrix[str(i)] = [[review.review_text]] 
      u = User.objects.get(username=rev.user) 
      i = i + 1 
    except: 
     u = User.objects.get(username=reviews.user) 
     reviewmatrix[str(i)] = [[reviews.review_text]] 

    if request.method=="POST": 
     form = responseForm(request.POST, review=review) 
     if form.is_valid(): 
      response = form.save() 
      msg = 'Obrigado por avaliar ' + prod.name 
     return render(request, 'product_detail.html', {'prod':prod, 'reviews':reviews, 'user':u.first_name, 'msg':msg})  
    else:  
     form = ReviewForm()  
     args = {} 
     args.update(csrf(request)) 
    return render(request, 'product_detail.html', {'prod':prod, 'reviews':reviews, 'user':u.first_name, 'form':form}) 

답변

-1

이 봐 보자 : 당신은 여러 "말"에 대한 번역을 가지고 다음 필요할 것 https://docs.djangoproject.com/en/dev/topics/i18n/Django form and i18n

을하고

from django import forms 
from django.forms import models 
from models import Review 
from django.utils.safestring import mark_safe 
from django.forms import ModelForm 

class ReviewForm(ModelForm): 
     class Meta: 
       model = Review   
       fields = ('review_text','tag') 

     review_text = forms.CharField(widget = forms.Textarea, label='teste label') 

이 페이지에 대한 내 생각이다 한 언어를 기본값으로 유지할 수 있습니다.

+0

감사합니다. 그러나 그것은 내가 예상 한 것이 아닙니다. 데이터 구조를 가진 솔루션을 찾고 있습니다. html과 forms.py로 만든 양식을 연결하는 방법은 무엇입니까? –