Opened 20 years ago
Closed 19 years ago
#1683 closed defect (fixed)
[patch][magic removal] fixed model objects set-properties to be settable in constructor
| Reported by: | iki (admin at mail cz) | Owned by: | Adrian Holovaty |
|---|---|---|---|
| Component: | Metasystem | Version: | magic-removal |
| Severity: | trivial | Keywords: | |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Currently, django.db.models.base.Model._init_ does not accept object set-properties as its keyword arguments. See example below for more info. Attached is a trivial patch.
Example.model:
from django.db import models
class User(models.Model):
first_name = models.CharField(maxlength=30, blank=False)
last_name = models.CharField(maxlength=30, blank=False)
def _get_name(self):
return '%s %s' % (self.first_name, self.last_name)
def _set_name(self, name):
split = name.rfind(' ')
self.last_name = name[split+1:]
if (split < 0): split = 0
self.first_name = name[:split]
name = property(_get_name, _set_name)
Example.code:
u = User(name='Petr Iljic Cajkovskij')
Result.beforePatch:
TypeError: 'name' is an invalid keyword argument for this function
Attachments (1)
Change History (3)
by , 20 years ago
| Attachment: | base.py.diff added |
|---|
comment:1 by , 20 years ago
| Summary: | [patch] fixed model objects set-properties to be settable in constructor → [patch][magic removal] fixed model objects set-properties to be settable in constructor |
|---|
comment:2 by , 19 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
(In [3145]) Fixed #1683 -- Permit initialising models using settable properties as well as
field names.