On Monday 13 August 2007 23:21:35 Mickael Profeta wrote:
> Hi,
>
> I got a problem manipulating Dates...
>
> I create a model sith a DateCol column:
>
> class Jour(SQLObject):
>     classe = UnicodeCol (length = 10)
>     jour = DateCol(alternateID=True)
>     texte = UnicodeCol()
>
>
> In the controller, I use CalendarDatePicker widget to select a date and
> try to update the database with the form:
>
> class DayForm(widgets.WidgetsList):
>
>     Date = widgets.CalendarDatePicker(
>         label = _('Jour'),
>         format = '%d/%m/%Y',
>         validator = validators.DateTimeConverter(format='%d/%m/%Y',
>                                                  not_empty=True))
>
>     Texte = widgets.TextArea(
>         label = _('Texte'),
>         rows  = 10,
>         cols  = 60,
>         validator = validators.NotEmpty()
>         )
>
> dayformulaire= widgets.TableForm(
>     'Un jour',
>     fields = DayForm(),
>     action = 'save',
>     submit_text = "Valider"
>     )
> class Root(controllers.RootController):
>
>     @expose(template="cahier_texte.templates.jour")
>     def index(self):
>         jourlist = []
>         for day in Jour.select(orderBy=Jour.q.jour):
>             jourlist.append([day.jour,day.texte])
>         return dict(jourlist=jourlist)
>
>     @expose(template="cahier_texte.templates.edit")
>     def edit(self, tg_errors=None):
>         if tg_errors:
>             flash('il y a un probleme dans le formulaire')
>         return dict(form=dayformulaire)
>
>     @expose()
>     @error_handler(edit)
>     @validate(form=dayformulaire)
>     def save(self, Date, Texte):
>         from sqlobject import SQLObjectNotFound
>         try:
>             day = Jour.byJour(Date)
>             day.texte = Texte
>         except SQLObjectNotFound:
>             Jour(classe="", jour=Date, texte=Texte)
>         flash('Entree mise a jour!')
>         redirect('/')
>
>
>
> Even if the date exist, Jour.byJour(Date) does not find it, I get the
> except case. And the error:
>
> File
> "/usr/lib/python2.4/site-packages/sqlobject/sqlite/sqliteconnection.py",
> line 187, in _executeRetry raise DuplicateEntryError(msg)
> DuplicateEntryError: column jour is not unique
>
>
>
>
> If I use DateConverter, it tells me the month is not between 1 and 12
> which means it interprets the entry as %m/%d and not %d/%m as expected.
>
> I do not really see the problem? validators? Date format for sqlobject?

jour = DateCol(alternateID=True)

is your problem. It implies a unique-constraint on the DB.

Diez

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to