ho cercato di creare un modello di Django con una proprietà pitone, in questo modo:modelli Django e Python proprietà
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 = ''
Fin qui tutto bene, e nella console posso interagire con la proprietà di sintesi solo bene. Ma quando provo a fare qualsiasi cosa con questo Django-y, come lo Post(title="foo", summary="bar")
, si prova un attacco. C'è un modo per fare in modo che Django giochi con le proprietà Python?
Questo è il metodo standard in Python (http://docs.python.org/library/functions.html#property) - Sto solo usando lo stile decoratore invece di chiamare esplicitamente 'property'. – futuraprime
Intendi 'Post (body =" foo ", summary =" bar ")'? (Nota che 'body' invece di' title'). Questo dovrebbe funzionare. – okm
@okmro Ho corretto quel refuso. Era solito dire "Post (title =" foo ", summary =" bar ")" che era un ovvio errore. – Buttons840