On Wed, Dec 15, 2010 at 3:06 AM, Jer-ming Lin <csie...@gmail.com> wrote:

> it seems the name conflict is the real problem. maybe you can use
> "Form Prefix"
> http://docs.djangoproject.com/en/1.2/ref/forms/api/#prefixes-for-forms
> to differentiate the fields between the Report and Incident Form.
> Sorry i can not help you totally and i also have no time to test it.
> Hope you can feedback this.
>
> Thanks again :-)

I gave up on the form validation and went through to analyzing the input via
the raw unicode in request.POST itself.
Not ideal, but its at least a way for me to move forward.

BR
> Jer-ming
>
> 2010/12/15 john doe <thebiggestbangthe...@gmail.com>:
> >
> >
> > On Tue, Dec 14, 2010 at 9:17 PM, john doe <
> thebiggestbangthe...@gmail.com>
> > wrote:
> >>
> >>
> >> 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
> >
> > looking at the request.POST itself I see:
> > [code]
> > <QueryDict: {u'submission_date': [u'2010-12-15 07:02:26', u'2010-12-15
> > 07:02:26'], u'description': [u'efff'], u'most_recent_followup_date':
> > [u'9999-01-01 00:00:00', u'9999-01-01 00:00:00'], u'harmscore': [u'1'],
> > u'acknowledgement_date': [u'9999-01-01 00:00:00', u'9999-01-01
> 00:00:00'],
> > u'submitter': [u'Anonymous'], u'type': [u'BR', u'SF'],
> u'resolution_date':
> > [u'9999-01-01 00:00:00', u'9999-01-01 00:00:00']}>
> > [/code]
> >
> > which shows the type choices for report and incident as BR and SF
> >
> > Report type can be BR and UN, is this because when django sees incident
> type
> > as SF it says that it is not a valid choice?
> > Any advice will be great.
> >
> >>>
> >> 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-us...@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.

Reply via email to