Opened 19 years ago
Closed 18 years ago
#4214 closed (fixed)
Document how to update a foreign key in db-api
| Reported by: | Owned by: | Jacob | |
|---|---|---|---|
| Component: | Documentation | Version: | dev |
| Severity: | Keywords: | ||
| Cc: | Triage Stage: | Accepted | |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
I am not sure of best place to highlight this in the documentation, but it cost me an hour to find out the hard way :)
API reference to foreignkey fields appears to require appending _id to fieldname.
class Nlgroup(models.Model):
o1object = models.ForeignKey('People', related_name='nlgroupo1object', null=True, blank=True, editable=False)
givens = models.CharField(maxlength=25, verbose_name="Givens", blank= True, editable=False)
def save(self):
if not self.id:
p = People.objects.create(orgname=self.description)
# self.o1object is not saved into the o1object field
self.o1object_id = p.id
super(Nlgroup, self).save()
Attachments (1)
Change History (4)
comment:1 by , 19 years ago
by , 19 years ago
| Attachment: | db-api.patch added |
|---|
patch that explains how to update a foreign key field
comment:2 by , 19 years ago
| Has patch: | set |
|---|---|
| Summary: | API inconsistency not noted in documentation → Document how to update a foreign key in db-api |
| Triage Stage: | Unreviewed → Accepted |
I think a few people have had problems with this before, so it may be worth adding the above example to the docs.
comment:3 by , 18 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
If you want to assign the primary-key value of the related object, yes; in general, though, the field itself will accept an object of the correct type to be assigned to the relation. For example, this would work:
Given that it's far more common (and preferable) to assign the object to the field rather than do indirection on assigning a primary key value to the correct attribute, I'm not sure this is worth doing much about.