2017-11-09 9 views
-1

내 장고 앱에서 시설의 다른 부분에 대한 문서를 추가하고 싶습니다. 그래서, 내 models.py에 다음과 같은 모델을 가지고 :장고의 드롭 다운 목록에 값을 표시하십시오.

class Parts(models.Model): 
    Name = models.CharField(max_length=50) 
class Docs(models.Model): 
    Date = models.DateField(default=date.today) 
    Type = models.CharField(max_length=50) 
    Part = models.ForeignKey(Parts) 
    Link = models.FileField(upload_to='Docs/%Y/%m/%d') 

forms.py :

class DocsForm(ModelForm): 
    class Meta: 
     model = Docs 
     fields = ['Date', 'Type', 'Part', 'Link'] 
class PartsForm(ModelForm): 
    class Meta: 
     model = Parts 
     fields = ['Name'] 

views.py :

def adddocs(request): 
if request.method == 'POST': 
    f = DocsForm(request.POST, request.FILES) 
    if f.is_valid(): 
     f.save() 
    return HttpResponseRedirect('') 
else: 
    form = DocsForm() 
return render(
    request, 
    'adddocs.html', 
    {'form': form} 

내 템플릿의 다음 조각 :

<form action="{% url 'adddocs' %}" method="post" enctype="multipart/form-data"> 
      {% csrf_token %} 
      <p> {{form.Date}} </p> 
      <p> {{form.Type}} </p> 
      <p> {{form.Part}} </p> 
      <p> {{form.Link}} </p> 

      <p><input type="submit" value="Add" /></p> 
       </form> 

그리고 전자 문제는 하나만 남았습니다. 이제는 두 가지 부분, 예를 들어 '튜브'와 '보관함'이 있습니다. 내가 드롭 다운 목록을 선택하려는 경우, 나는 내 브라우저에서 다음 변종를 참조하십시오


부품
부품 나는이 같은 부품의 이름을 볼 수 변경해야합니까

객체 객체


튜브
저장
?

답변

0

모델에 str() 메소드가 필요합니다. 당신이 개체에 대한 STR()를 호출 할 때마다

STR() 메소드가 호출됩니다. 장고는 여러 장소에서 str (obj)을 사용합니다. 특히, Django 관리 사이트에 객체를 표시하고 객체를 표시 할 때 템플릿에 삽입되는 값으로 사용합니다. 따라서 항상 str() 메소드에서 모델의 사람이 읽을 수있는 멋진 표현을 반환해야합니다.

class Parts(models.Model): 
    Name = models.CharField(max_length=50) 

    __str__(self): 
     return self.Name