Opened 13 years ago
Closed 13 years ago
#19561 closed Uncategorized (invalid)
Through-table model attributes are not available
| Reported by: | Owned by: | nobody | |
|---|---|---|---|
| Component: | Database layer (models, ORM) | Version: | 1.5-beta-1 |
| Severity: | Normal | Keywords: | orm, many-to-many, through |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Here's my code:
class Property(models.Model):
title = models.CharField(_("Title"), max_length=150, unique=True)
default_description = models.TextField(_("Default description"), blank=True)
class AccommodationProperty(models.Model):
accommodation = models.ForeignKey("Accommodation")
prop = models.ForeignKey(Property, verbose_name=_("Property"),
db_column="property")
custom_description = models.TextField(_("Custom description"), blank=True)
class Service(models.Model):
title = models.CharField(_("Title"), max_length=150)
class Accommodation(Service):
properties = models.ManyToManyField(Property, through=AccommodationProperty,
related_name="accommodations", blank=True)
And here's what's wrong:
>>> acprop = AccommodationProperty.objects.all()[0] >>> acprop.accommodation <Accommodation: test apgyv> >>> acprop.prop <Property: Internetas> >>> acprop.custom_description u'customas' >>> acprop.prop.default_description u'defaultas' >>> ac = acprop.accommodation >>> ac.properties.all() [<Property: Internetas>] >>> prop = ac.properties.all()[0] >>> prop.default_description u'defaultas' >>> prop.title u'Internetas' >>> prop.custom_description Traceback (most recent call last): File "<console>", line 1, in <module> AttributeError: 'Property' object has no attribute 'custom_description' >>>
Attribute custom_description cannot be accessed.
Change History (2)
comment:1 by , 13 years ago
| Component: | ORM aggregation → Database layer (models, ORM) |
|---|
comment:2 by , 13 years ago
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
In your sample code, prop is an instance of the Property model. and Property has no custom_description field.