Dhibka ugu weyni waa in django annotate datetime field to char aysan la shaqayn doonin waqtiyada taariikhda qaarkood. Tusaale ahaan, haddii aad leedahay goob la yiraahdo "created_at" oo aad isku daydo inaad ku qeexdo fasalka CharField, django kuma oggolaan doono inaad kaydiso xogtaada.
field I have a model with a datetime field and I want to annotate it to a charfield. I tried this: <code>MyModel.objects.values('date').annotate(date_char=CharField()) </code> but it gives me an error: <code>Cannot resolve keyword 'CharField' into field.</code> A: You can use <code>Func</code>: https://docs.djangoproject.com/en/dev/ref/models/expressions/#func-expressions and then use the <code>.format()</code> method on the resulting string to format it however you want (e.g., YYYY-MM-DD): https://docs.python.org/2/library/string.html#formatstrings . Something like this should work: <code>from django.db import models # for Func expression class from django import db # for connection alias, used in Func expression class # create connection alias, used in Func expression class # (this is only necessary if you are using multiple databases) # replace 'default' with your database name if using multiple databases my_conn = db._connections['default'] # create Func expression object that will convert date to string format YYYY-MM-DD my_func = models.Func(my_conn, function='TO_CHAR', template='%(function)s(%(expressions)s::DATE, 'YYYY-MM-DD')') # use my_func in query as follows: MyModelObjects = MyModelObjects .objects .values('date') .annotate(date_char=my_func) </code>
Wakhtiga taariikhda ee Django
Django waxa ay bixisa nooc taariikhi ah oo ku haboon oo loo isticmaali karo in lagu matalo taariikhaha iyo wakhtiyada.
Si aad u abuurto walax taariikhi ah, adeegso dhisaha wakhtiga taariikhda:
>>> laga bilaabo django.utils.datetime soo dejinta taariikhda taariikhda >>> d = taariikhda taariikhda (2015, 11, 25) >>> d 2015-11-25 00:00:00
Tusaalooyinka koodka taariikhda taariikhda
Kuwa soo socdaa waa liiska tusaalaha koodka wakhtiga taariikhda ee Django.
laga soo bilaabo django.utils.datetime soo dejinta datetime from django.utils.translation ka soo dejinta gettext_lazy sida _ ka django.core.urlresolvers ka soo dejiso django.db moodooyinka soo dejinta fasalka User(models.Model): first_name = model.CharField(max_length=30, blank=Run, nullable=Been) magaca dambe = model.CharField(max_length=30, blank=Run, nullable=Been) iimayl = model. + '@' + nafta._email