Ayrıca, genel olması gereken bire bir ilişki kurmalıyım. Bana daha iyi bir tasarım önerebilirsin. Şimdiye kadar ben tüm eylemleri toplamak istediğiniz olay listesinde aşağıdaki modellerde Django Yönetici olarakDjango'da genel bire bir ilişki
class Event(models.Model):
# skip event related fields...
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
class Meta:
unique_together = ('content_type', 'object_id')
class Action1(models.Model):
# skip action1 related fields...
events = generic.GenericRelation(Event, content_type_field='content_type', object_id_field='object_id')
@property
def event(self):
return self.events.get() # <<<<<< Is this reasonable?
class Action2(models.Model):...
kadar geldi ve oradan ben eylemler için yönetici sayfalarına gidin istiyorum. Aksiyon modellerinde event
özelliği yaratmamak mümkün mü? Daha iyi bir çözüm var mı? events
alanını ve event
özelliğini tek bir tanımda birleştirmek güzel olurdu. Çalıştığım proje Django 1.1
Gerçekten de 'events''den kaçınmak istiyorsanız, aşağıdaki gibi sorguyu "Event" tablosuna manuel olarak uygulamanız gerekir. Yine de “Olayları” bir GenericRelation olarak kullanmayı tercih ediyorum ve “event” özelliğindeki 'self.events.first()' işlevini kullanıyorum. Ayrıca, bu, gelecekte benzersiz kısıtlamayı kaldırmanızı daha kolay bir şekilde sağlar. – alexcasalboni