Hello, This is a tricky question that's been bothering me for over a year.
I'm working with french historians on a project called Dezède<http://dezede.org/> (source on github <https://github.com/dezede/dezede>). For several models they need to specify one or two "spatiotemporal coverage(s)": when and where something happened. And sometimes they don't have exact dates|places, so they need CharFields to specify such approximations. And sometimes they just have a date without a place, etc. So I ended up with models similar to those you can find below. (Sorry, it's a bit complex, but I promise it's simpler than the originals<https://github.com/dezede/dezede/tree/master/libretto/models> ) But this has a flaw. When a user wants to specify Person.birth, he has to click on the magnifying glass, a popup opens with all the SpatioTemporalCoverages he can't choose (because of the OneToOneField), and he finally creates a new one. That's awkward. If he wants to modify it, it's even more complex, so that creating a new one is the best solution. That's even awkwarder. My question is therefore: Is there a way to edit these SpatioTemporalCoverages directly from other admin change forms (Person, Work and Event)? The closest solution I found is django-formfield<https://github.com/jsoa/django-formfield> . Thanks! Bertrand Bordage *# models.py* from django.db.models import * class Place(Model): name = CharField(max_length=200) *class SpatioTemporalCoverage(Model):* date = DateField(blank=True, null=True) time = TimeField(blank=True, null=True) place = ForeignKey(Place, blank=True, null=True) approx_date = CharField(max_length=200, blank=True) approx_time = CharField(max_length=200, blank=True) approx_place = CharField(max_length=200, blank=True) class Person(Model): first_name = CharField(max_length=200) last_name = CharField(max_length=200) *birth = OneToOneField(SpatioTemporalCoverage, blank=True, null=True)* *death = OneToOneField(SpatioTemporalCoverage, blank=True, null=True)* class Profession(Model): name = CharField(max_length=200) class Author(Model): person = ForeignKey(Person) profession = ForeignKey(Profession) class Work(Model): title = CharField(max_length=200) subtitle = CharField(max_length=200, blank=True) authors = ManyToManyField(Author, blank=True, null=True) *creation = OneToOneField(SpatioTemporalCoverage, blank=True, null=True) * class Event(Model): *start** = OneToOneField(SpatioTemporalCoverage)* * end = OneToOneField(SpatioTemporalCoverage, blank=True, null=True)** * works = ManyToManyField(Work) *# admin.py* from django.contrib.admin import ModelAdmin, site from .models import * class PersonAdmin(ModelAdmin): raw_id_fields = ('birth', 'death') class WorkAdmin(ModelAdmin): raw_id_fields = ('creation',) class EventAdmin(ModelAdmin): raw_id_fields = ('start', 'end') site.register(Place) site.register(SpatioTemporalCoverage) site.register(Person, PersonAdmin) site.register(Profession) site.register(Author) site.register(Work, WorkAdmin) site.register(Event, EventAdmin) -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.

