On Tue, Dec 14, 2010 at 2:15 PM, Titan, Jer-ming Lin <csie...@gmail.com>wrote:
> maybe your view function gets wrong. post it! XDD > > Thanks Titan :-). The code I use for my view function is below [code] #validate user def check_user_login(request): username = request.POST['username'] password = request.POST['password'] #bad practice, think about salting passwords user = authenticate(username=username, password=password) if user is not None: if user.is_active: #prepare list of reports to be shown latest_incidentreporter_list = Report.objects.all().filter(submitter__iexact=username).order_by('-submission_date') #throw in a form so that user can enter a new report rform = ReportForm() report = Report() report=initializeobject(report,'r') rform = ReportForm(instance=report) iform = IncidentForm() incident = Incident() incident=initializeobject(incident,'i') iform = IncidentForm(instance=incident) return render_to_response('index.html', {'latest_incidentreporter_list': latest_incidentreporter_list, 'new_report_form':rform, 'new_incident_form':iform,'username':username}) else: return render_to_response('userlogin.html', {'User': user}) # Return a 'disabled account' error message else: return render_to_response('userlogin.html') # Return an 'invalid login' error message. #initialize report or instance def initializeobject(object, level): #not sure if I have to initialize the type of object here object.submission_date=datetime.datetime.now() object.acknowledgement_date=datetime.datetime(datetime.MAXYEAR, 1, 1) object.most_recent_followup_date=datetime.datetime(datetime.MAXYEAR, 1, 1) object.resolution_date=datetime.datetime(datetime.MAXYEAR, 1, 1) object.resolved=False return object [/code] and in my models.py I have [code] class ReportForm(ModelForm): class Meta: model=Report class IncidentForm(ModelForm): class Meta: model=Incident [/code] > BR > Titan > > On Dec 15, 1:50 am, john doe <thebiggestbangthe...@gmail.com> wrote: > > On Tue, Dec 14, 2010 at 9:19 AM, john doe < > thebiggestbangthe...@gmail.com>wrote: > > > > > > > > > > > > > On Tue, Dec 14, 2010 at 5:16 AM, Jer-ming Lin <csie...@gmail.com> > wrote: > > > > >> Hi John, > > > > >> plz modify the Incident Model like Report Model, > > > > >> class Incident(models.Model): > > >> report = models.ForeignKey(Report) > > >> INCIDENT_CHOICES = ( > > >> ('SF', 'SegFault'), > > >> ('ML', 'Memory Leak'), > > >> ('MC', 'Memory Corruption'), > > >> ) > > >> type = models.CharField(max_length=2, choices=INCIDENT_CHOICES) > > > > >> Thanks again. I made the modification, yet I still get the error > "Select a > > > valid choice. SF is not one of the available choices." ! > > > Could it be that when the form is accepting input it is getting > confused > > > because the report has a type attribute and so does the incident. > > > > Digging bit more, taking out the > > <div class="incidentType"> > > {{ new_incident_form.type.errors }} > > <label for="id_incidenttype">Type of Incident:</label> > > {{ new_incident_form.type }} > > </div> > > > > fixes the error. However removing the same for reportType while keeping > the > > incidentType in place does not seem to help. This may indicate that the > form > > is *not* getting confused because both report and incident have a type > > attribute. It seems there is an inherent problem with the incident type > > itself. > > > > Also if it helps, I am using the following to generate the html form > > return render_to_response('index.html', {'latest_incidentreporter_list': > > latest_incidentreporter_list, 'new_report_form':rform, > > 'new_incident_form':iform,'username':username}) > > > > so basically passing to form structures to the HTML page and then trying > to > > show new_report_form.type and new_incident_form.type > > and that is where I run into issues. > > > > > BR > > >> Titan > > > > >> 2010/12/14 john doe <thebiggestbangthe...@gmail.com>: > > > > >> > On Mon, Dec 13, 2010 at 6:12 PM, Titan, Jer-ming Lin < > csie...@gmail.com > > > > >> > wrote: > > > > >> >> Hi John, > > > > >> >> each element in the choices is a two elements tuple. first one is > > >> >> the real data will be saved in the database and second one will > > >> >> present on the form. therefore, the max_length of 'type' field must > be > > >> >> modified to fit the first element in the choices tuple. Plz see the > > >> >> following code, i change the first element and the type field's > > >> >> max_length. > > > > >> >> REPORT_CHOICES = ( > > >> >> ('BR', 'Bug Report'), > > >> >> ('UN', 'Unknown Problem'), > > >> >> ) > > >> >> type = models.CharField(max_length=2, choices=REPORT_CHOICES) > > > > >> > Hi Titan, thank you. Yes that was something I could correct. > > > > >> > However the problem of the error which says "Select a valid choice. > SF: > > >> Seg > > >> > Fault is not one of the available choices." > > >> > still remains. Any insight here? > > > > >> >> ps: you can also google some pages which use the IntegerField to > > >> >> save the choices. > > > > >> >> BR > > >> >> Titan > > > > >> >> On Dec 14, 9:04 am, john doe <thebiggestbangthe...@gmail.com> > wrote: > > >> >> > Dear all, > > >> >> > I am making a small Django app for a bug tracking system > to > > >> get > > >> >> > my > > >> >> > head round this awesome framework. I am facing a problem wherein > when > > >> >> > accepting input via a form generated by models. The classes are > > >> listed > > >> >> > below > > >> >> > (not in its entirety). > > > > >> >> > [code] > > >> >> > class Report(models.Model): > > >> >> > #type = models.CharField(max_length=200) > > >> >> > REPORT_CHOICES = ( > > >> >> > ('BR: Bug Report', 'Bug Report'), > > >> >> > ('UN: Unknown Problem', 'Unknown Problem'), > > >> >> > ) > > >> >> > type = models.CharField(max_length=1, choices=REPORT_CHOICES) > > >> >> > submitter = models.CharField(max_length=200, > default='Anonymous') > > >> >> > ... > > >> >> > ... > > >> >> > class Incident(models.Model): > > >> >> > report = models.ForeignKey(Report) > > >> >> > INCIDENT_CHOICES = ( > > >> >> > ('SF: Seg Fault', 'SegFault'), > > >> >> > ('ML: Memory Leak', 'Memory Leak'), > > >> >> > ('MC: Memory Corruption', 'Memory Corruption'), > > >> >> > ) > > >> >> > type = models.CharField(max_length=1, choices=INCIDENT_CHOICES) > > >> >> > #description of the incident > > >> >> > description = models.CharField(max_length=20000) > > >> >> > ... > > >> >> > ... > > >> >> > [/code] > > > > >> >> > I have generated a form wherein a user can enter a report, and > > >> multiple > > >> >> > incidents related to the report. When I use the function to > accept > > >> the > > >> >> > input, not actually processing anything I get "Select a valid > choice. > > >> >> > SF: > > >> >> > Seg Fault is not one of the available choices." . > > > > >> >> > The HTML page code looks like below: > > >> >> > [code] > > >> >> > <h2>Submit a report</h2> > > >> >> > {% if new_report_form %} > > >> >> > <ul> > > >> >> > <form action="/submit_new_report/" method="post"> > > >> >> > {{ new_report_form.non_field_errors }} > > >> >> > <div class="reportType"> > > >> >> > {{ new_report_form.type.errors }} > > >> >> > <label for="id_reporttype">Type of > Report:</label> > > >> >> > {{ new_report_form.type }} > > >> >> > </div> > > >> >> > <div class="incidentType"> > > >> >> > {{ new_incident_form.type.errors }} > > >> >> > <label for="id_incidenttype">Type of > > >> Incident:</label> > > >> >> > {{ new_incident_form.type }} > > >> >> > </div> > > >> >> > ... > > >> >> > ... > > >> >> > [/code] > > > > >> >> > The form.is_valid() call is basically saying that there's a > problem > > >> with > > >> >> > validating the form input because the choice selected for the > > >> >> > incident-type > > >> >> > is not valid. However, in the model description, the choices are > > >> clearly > > >> >> > valid and in the form I have different identifiers too. Can > someone > > >> >> > please > > >> >> > provide some advice as to why this might be happening. > > > > >> >> > Thanks in advance. > > > > >> >> -- > > >> >> You received this message because you are subscribed to the Google > > >> Groups > > >> >> "Django users" group. > > >> >> To post to this group, send email to django-users@googlegroups.com > . > > >> >> To unsubscribe from this group, send email to > > >> >> django-users+unsubscr...@googlegroups.com<django-users%2bunsubscr...@googlegroups.com> > <django-users%2bunsubscr...@googlegroups.com<django-users%252bunsubscr...@googlegroups.com> > > > > >> . > > >> >> For more options, visit this group at > > >> >>http://groups.google.com/group/django-users?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To post to this group, send email to django-us...@googlegroups.com. > To unsubscribe from this group, send email to > django-users+unsubscr...@googlegroups.com<django-users%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.