2015-05-29 58 views
1

我的輸入字段沒有出現,但我的提交按鈕是,我沒有得到一個錯誤。爲什麼它沒有在我的瀏覽器中顯示出標籤。另外,如果我想使用ModelForm類與來自User模型的外鍵,我必須將它導入到forms.py中嗎?讓我知道你是否還有其他需要的信息。我卡住了。沒有輸入字段,只提交按鈕出現django

項目= CMIRS 應用= error_tracking

search_incidents.html

{% extends "base.html" %} 

{% block content %} 
<br> 
<p>Not only have you successfully logged in, you have also made it to the Search Incidents page!</p> 
<br><br> 

<form action="error_tracking.views.search_usernames" method="post">{% csrf_token %} 
    {{ form.as_p }} 
    <input type="submit" value="Submit" /> 
</form> 

views.py

import datetime 

from django.shortcuts import render 
from django.http import HttpResponseRedirect 
from django.shortcuts import render_to_response 
from django.contrib.auth import authenticate 
from django.contrib.auth.models import User 
from django.contrib.auth.decorators import login_required 

from error_tracking.models import Incident 
from error_tracking.forms import IncidentForm 

@login_required 
def search_incidents(request): 
    incident_list = Incident.objects.filter(open = 'True').order_by('-incident_date_time_reported') 
    return render(request, 'search_incidents.html', { 
     'incident_list' : incident_list, 
     'user' : request.user 
    }) 

def search_usernames(request): 
    if request.method == 'POST': 
      form = IncidentForm(request.POST) 
      if form.is_valid(): 
       form.save() 
       return HttpResponseRedirect('/') 
    else: 
     form = IncidentForm() 
    return render_to_response('error_tracking/search_incidents.html', {'form': form}) 

forms.py

from django.forms import ModelForm 
from error_tracking.models import Incident 

class IncidentForm(ModelForm): 
    class Meta: 
     model = Incident 
     fields = ['user_id'] 

models.py

from django.db import models 
from django.contrib.auth.models import User 
from django.utils import timezone 

class Incident(models.Model): 
     incident_id = models.AutoField(primary_key=True) 
     incident_date_time_reported = models.DateTimeField('incident reported', default=timezone.now) 
     user_id = models.ForeignKey(User) 
     incident_date_time_occurred = models.DateTimeField('incident occurred', default=timezone.now) 
     clinical_sample = models.BooleanField(default=True) 
     number_of_clinical_samples = models.IntegerField(default=0) 
     sample_id_numbers = models.TextField(max_length=1000) 
     equipment_id = models.ForeignKey(Equipment) 
     incident_category = models.ForeignKey(Incident_Category) 
     technician = models.TextField(max_length=1000) 
     description = models.TextField(max_length=1000) 
     action_taken = models.TextField(max_length=1000) 
     open = models.BooleanField(default=True) 

     def __str__(self): 
       return self.incident_id 

     class Meta: 
       verbose_name_plural="Incident" 

error_tracking/urls.py

from django.conf.urls import include, url 

urlpatterns = [ 
    url(r'^$', 'error_tracking.views.search_incidents'), 
] 
+0

您有重複的URL模式... – rnevius

+0

固定。我仍然無法獲得輸入字段。 – user1807271

回答

0

明白了! form需要search_incidents下的報關並傳回給search_incidents.html

views.py

@login_required 
def search_incidents(request): 
    form = IncidentForm() 
    incident_list = Incident.objects.filter(open = 'True').order_by('-incident_date_time_reported') 
    return render(request, 'search_incidents.html', { 
     'incident_list' : incident_list, 
     'user' : request.user, 
     'form' : form 
    })