ಪರಿಹರಿಸಲಾಗಿದೆ: ಚಾರ್‌ಗೆ ದಿನಾಂಕದ ಸಮಯ ಕ್ಷೇತ್ರವನ್ನು ಜಾಂಗೊ ಟಿಪ್ಪಣಿ ಮಾಡಿ

ಮುಖ್ಯ ಸಮಸ್ಯೆಯೆಂದರೆ, ಜಾಂಗೊ ಆನ್ನೋಟೇಟ್ ಡೇಟ್‌ಟೈಮ್ ಫೀಲ್ಡ್ ಟು ಚಾರ್ ಕೆಲವು ಡೇಟ್‌ಟೈಮ್ ಫೀಲ್ಡ್‌ಗಳೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ. ಉದಾಹರಣೆಗೆ, ನೀವು "created_at" ಎಂಬ ಕ್ಷೇತ್ರವನ್ನು ಹೊಂದಿದ್ದರೆ ಮತ್ತು ಅದನ್ನು CharField ವರ್ಗದೊಂದಿಗೆ ಟಿಪ್ಪಣಿ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿದರೆ, ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಉಳಿಸಲು django ನಿಮಗೆ ಅನುಮತಿಸುವುದಿಲ್ಲ.

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>

ಜಾಂಗೊದಲ್ಲಿ ದಿನಾಂಕ

ದಿನಾಂಕಗಳು ಮತ್ತು ಸಮಯವನ್ನು ಪ್ರತಿನಿಧಿಸಲು ಬಳಸಬಹುದಾದ ಅನುಕೂಲಕರ ದಿನಾಂಕದ ಪ್ರಕಾರವನ್ನು ಜಾಂಗೊ ಒದಗಿಸುತ್ತದೆ.

ಡೇಟ್‌ಟೈಮ್ ಆಬ್ಜೆಕ್ಟ್ ರಚಿಸಲು, ಡೇಟ್‌ಟೈಮ್ ಕನ್‌ಸ್ಟ್ರಕ್ಟರ್ ಅನ್ನು ಬಳಸಿ:

>>> django.utils.datetime ಇಂಪೋರ್ಟ್ ದಿನಾಂಕ ಸಮಯ >>> d = datetime(2015, 11, 25) >>> d 2015-11-25 00:00:00

ಡೇಟ್‌ಟೈಮ್ ಕೋಡ್‌ನ ಉದಾಹರಣೆಗಳು

ಕೆಳಗಿನವು ಜಾಂಗೊದಲ್ಲಿ ಡೇಟ್‌ಟೈಮ್ ಕೋಡ್‌ನ ಉದಾಹರಣೆಯ ಪಟ್ಟಿಯಾಗಿದೆ.

django.utils.datetime ಇಂದ django.utils.translation ಇಂದ ಆಮದು ಡೇಟೈಮ್ ಅನ್ನು django.core.urlresolvers ನಿಂದ _ ಎಂದು ಆಮದು ಮಾಡಿಕೊಳ್ಳಿ gettext_lazy django.db ನಿಂದ ರಿವರ್ಸ್ ಆಮದು ಮಾಡೆಲ್‌ಗಳ ವರ್ಗ ಬಳಕೆದಾರ(models.Model): first_name = models.CharField=max_30length(max_30length) blank=True, nullable=False) last_name = models.CharField(max_length=XNUMX, blank=True, nullable=False) email = models.EmailField() def __str__(self): return self._first_name + 'st_name. + '@' + self._email

ಸಂಬಂಧಿತ ಪೋಸ್ಟ್ಗಳು:

ಒಂದು ಕಮೆಂಟನ್ನು ಬಿಡಿ