Próbowałem założyć modelu Django z właściwością Pythona, tak jak:modele Django i właściwości Python
class Post(models.Model):
_summary = models.TextField(blank=True)
body = models.TextField()
@property
def summary(self):
if self._summary:
return self._summary
else:
return self.body
@summary.setter
def summary(self, value):
self._summary = value
@summary.deleter
def summary(self):
self._summary = ''
tej pory tak dobrze, aw konsoli mogę wchodzić w interakcje z właściwością tylko podsumowania w porządku. Ale kiedy próbuję zrobić cokolwiek Django-y z tym, jak Post(title="foo", summary="bar")
, rzuca dopasowanie. Czy jest jakiś sposób, aby Django mógł grać ładnie z właściwościami Pythona?
Jest to standardowa metoda w Pythonie (http://docs.python.org/library/functions.html#property) - Używam tylko stylu dekoratora zamiast jawnie wywoływać 'właściwość'. – futuraprime
Masz na myśli 'Post (body =" foo ", summary =" bar ")'? (Zauważ, że 'body' zamiast' title'). To powinno działać. – okm
@okm Naprawiłem tę literówkę. Kiedyś mówiono 'Post (title =" foo ", summary =" bar ")', co było oczywistym literówką. – Buttons840