<div dir="ltr"><div><div><div><div><div><div>Hi William,<br><br></div>thanks,<br><br></div>I solved then my problem by following code<br><br>def today():<br>    """<br>    Returns an aware or naive datetime.datetime, depending on settings.USE_TZ.<br>    """<br>    return date.today()<br><br>class TestClass(models.Model):<br><br>    start_date = models.DateField(<br>        verbose_name=u'start date',<br>        default=today,<br>        )<br><br></div>so I just wrap required function call into function.<br></div>But this is a temporary solution. Would be great if there could be a general one.<br><br></div>Regards<br></div>Sergey<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 17, 2016 at 11:04 AM, William ML Leslie <span dir="ltr"><<a href="mailto:william.leslie.ttg@gmail.com" target="_blank">william.leslie.ttg@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I took a look at the Django source.<br>
<br>
There's code for serialising methods in Django that checks `if<br>
isinstance(value, (types.FunctionType, types.BuiltinFunctionType))`<br>
which succeeds on cpython because datetime.date.today is a<br>
BuiltinFunctionType, wheras it's a types.MethodType on pypy.  Maybe<br>
that check could be expanded to include MethodType.<br>
<br>
Here's the code at master:<br>
<br>
<a href="https://github.com/django/django/blob/3b383085fb89a48e756383e7cd5d3bd867353ba1/django/db/migrations/serializer.py#L379" rel="noreferrer" target="_blank">https://github.com/django/<wbr>django/blob/<wbr>3b383085fb89a48e756383e7cd5d3b<wbr>d867353ba1/django/db/<wbr>migrations/serializer.py#L379</a><br>
<div class="HOEnZb"><div class="h5"><br>
<br>
On 17 August 2016 at 17:27, Sergey Kurdakov <<a href="mailto:sergey.forum@gmail.com">sergey.forum@gmail.com</a>> wrote:<br>
> Hi William,<br>
><br>
> here is my traceback in console<br>
><br>
> Traceback (most recent call last):<br>
>   File "manage.py", line 10, in <module><br>
>     execute_from_command_line(sys.<wbr>argv)<br>
>   File<br>
> "/usr/local/lib/pypy2.7/dist-<wbr>packages/django/core/<wbr>management/__init__.py",<br>
> line 353, in execute_from_command_line<br>
>     utility.execute()<br>
>   File<br>
> "/usr/local/lib/pypy2.7/dist-<wbr>packages/django/core/<wbr>management/__init__.py",<br>
> line 345, in execute<br>
>     self.fetch_command(subcommand)<wbr>.run_from_argv(self.argv)<br>
>   File<br>
> "/usr/local/lib/pypy2.7/dist-<wbr>packages/django/core/<wbr>management/base.py", line<br>
> 348, in run_from_argv<br>
>     self.execute(*args, **cmd_options)<br>
>   File<br>
> "/usr/local/lib/pypy2.7/dist-<wbr>packages/django/core/<wbr>management/base.py", line<br>
> 399, in execute<br>
>     output = self.handle(*args, **options)<br>
>   File<br>
> "/usr/local/lib/pypy2.7/dist-<wbr>packages/django/core/<wbr>management/commands/<wbr>makemigrations.py",<br>
> line 150, in handle<br>
>     self.write_migration_files(<wbr>changes)<br>
>   File<br>
> "/usr/local/lib/pypy2.7/dist-<wbr>packages/django/core/<wbr>management/commands/<wbr>makemigrations.py",<br>
> line 178, in write_migration_files<br>
>     migration_string = writer.as_string()<br>
>   File<br>
> "/usr/local/lib/pypy2.7/dist-<wbr>packages/django/db/migrations/<wbr>writer.py", line<br>
> 167, in as_string<br>
>     operation_string, operation_imports =<br>
> OperationWriter(operation).<wbr>serialize()<br>
>   File<br>
> "/usr/local/lib/pypy2.7/dist-<wbr>packages/django/db/migrations/<wbr>writer.py", line<br>
> 124, in serialize<br>
>     _write(arg_name, arg_value)<br>
>   File<br>
> "/usr/local/lib/pypy2.7/dist-<wbr>packages/django/db/migrations/<wbr>writer.py", line<br>
> 76, in _write<br>
>     arg_string, arg_imports = MigrationWriter.serialize(<wbr>item)<br>
>   File<br>
> "/usr/local/lib/pypy2.7/dist-<wbr>packages/django/db/migrations/<wbr>writer.py", line<br>
> 357, in serialize<br>
>     item_string, item_imports = cls.serialize(item)<br>
>   File<br>
> "/usr/local/lib/pypy2.7/dist-<wbr>packages/django/db/migrations/<wbr>writer.py", line<br>
> 433, in serialize<br>
>     return cls.serialize_deconstructed(<wbr>path, args, kwargs)<br>
>   File<br>
> "/usr/local/lib/pypy2.7/dist-<wbr>packages/django/db/migrations/<wbr>writer.py", line<br>
> 318, in serialize_deconstructed<br>
>     arg_string, arg_imports = cls.serialize(arg)<br>
>   File<br>
> "/usr/local/lib/pypy2.7/dist-<wbr>packages/django/db/migrations/<wbr>writer.py", line<br>
> 540, in serialize<br>
>     "topics/migrations/#migration-<wbr>serializing" % (value, get_docs_version())<br>
> ValueError: Cannot serialize: <bound method type.today of <class<br>
> 'datetime.date'>><br>
><br>
><br>
><br>
> Regards<br>
> Sergey<br>
><br>
><br>
> On Wed, Aug 17, 2016 at 10:21 AM, William ML Leslie<br>
> <<a href="mailto:william.leslie.ttg@gmail.com">william.leslie.ttg@gmail.com</a>> wrote:<br>
>><br>
>> On 17 August 2016 at 16:50, Sergey Kurdakov <<a href="mailto:sergey.forum@gmail.com">sergey.forum@gmail.com</a>><br>
>> wrote:<br>
>> ><br>
>> > still causes error of the kind:<br>
>> ><br>
>> > topics/migrations/#migration-<wbr>serializing" % (value, get_docs_version())<br>
>> > ValueError: Cannot serialize: <bound method type.today of <class<br>
>> > 'datetime.date'<br>
>><br>
>> Do you get a full traceback?  That would be much more useful for<br>
>> tracking down the problem.<br>
>><br>
>> --<br>
>> William Leslie<br>
>><br>
>> Notice:<br>
>> Likely much of this email is, by the nature of copyright, covered<br>
>> under copyright law.  You absolutely MAY reproduce any part of it in<br>
>> accordance with the copyright law of the nation you are reading this<br>
>> in.  Any attempt to DENY YOU THOSE RIGHTS would be illegal without<br>
>> prior contractual agreement.<br>
><br>
><br>
<br>
<br>
<br>
--<br>
William Leslie<br>
<br>
Notice:<br>
Likely much of this email is, by the nature of copyright, covered<br>
under copyright law.  You absolutely MAY reproduce any part of it in<br>
accordance with the copyright law of the nation you are reading this<br>
in.  Any attempt to DENY YOU THOSE RIGHTS would be illegal without<br>
prior contractual agreement.<br>
</div></div></blockquote></div><br></div>