Opened 6 years ago

Last modified 6 years ago

#21637 closed Bug

Defining objects of models having custom field without any parameter. — at Version 2

Component: Database layer (models, ORM) Version: 1.6
Severity: Normal Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Tim Graham)

When we define any model, then we can create its object as obj=ModelClassName(). But when we define custom fields we just cannot do the same always. If we are using to_python() method, then it shows up error.

If a define my model as:

from django.db import models

class LField(models.Field):
    __metaclass__ = models.SubfieldBase
    def db_type(self, connection):
        return 'longtext'
    def to_python(self, value):
        return long(value)

class Person(models.Model):
    name = models.CharField(max_length=80, blank=True, null=True)
    something_else = LField()
class Person2(models.Model):
    name = models.CharField(max_length=80, blank=True, null=True)
    ph = models.CharField(max_length=80, blank=True, null=True)

Then it is not possible to define an object of Person type without giving parameters.
p=Person() raises ValueError
p=Person2() works fine as it should like in case of any other class.

Change History (2)

comment:1 Changed 6 years ago by ANUBHAV JOSHI

Owner: changed from nobody to ANUBHAV JOSHI
Status: newassigned

comment:2 Changed 6 years ago by Tim Graham

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top