Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 19, 2007 01:47:22

aliens
От:
Зарегистрирован: 2007-08-14
Сообщения: 135
Репутация: +  1  -
Профиль   Отправить e-mail  

Вопрос по One2One модель.

Здравствуйте. Вот начал потихоньку изучать Джангу. В туториале впринципе все понятно. Решил напсиать аналогичное, но с использованием модели One2One.

вот вся модель:

# -*- coding: utf-8 -*-
from django.db import models
class Auditory(models.Model):
name = models.CharField(max_length=300)
num = models.IntegerField()
def __unicode__(self):
return self.name
class Admin:
pass
class AdvAud(models.Model):
auditory = models.OneToOneField(Auditory)
info = models.CharField(max_length=300)
max_student = models.IntegerField()
def __unicode__(self):
return self.auditory


Собственно получить хочу вот что:
Имеется объект - Аудитория, с обязательными параметрами: name и num (имя и номер). Также может иметь и необязательные поля из AdvAud. ( info и max_student).
Такая модель работает, но подскажите, как к определенному Auditory добавлять параметры из AdvAud ? Нашел только 1 способ, это создавать объект AdvAud, в нем выбирать auditory_id, тогда он будет привязан. Можно ли по другому? так, как сделано в туториале Джанги?

И вторйо вопрос, как это все отобразить в админке, но не по отдельностям, а чтобы поля AdvAud были доступны из изменения/добавления Auditory?



Офлайн

#2 Дек. 19, 2007 12:57:01

qewerty
От:
Зарегистрирован: 2007-12-19
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по One2One модель.

Вообще нифига не понятно. Зачем вообще две модели делать?

aliens
Такая модель работает, но подскажите, как к определенному Auditory добавлять параметры из AdvAud ?
Добавлять? По auditory.advaud обращался? Типа:

try:
adv = auditory.advaud
except AdvAud.DoesNotExist:
… do smth …

Может AutoOneToOneField подойдёт? - http://softwaremaniacs.org/blog/2007/03/07/auto-one-to-one-field/ . Само будет создаваться при любом обращении.

aliens
И вторйо вопрос, как это все отобразить в админке, но не по отдельностям, а чтобы поля AdvAud были доступны из изменения/добавления Auditory?
Никак! Админка это относительно низкоуровневый интерфейс, и не стоит на него шибко расчитывать.



Отредактировано (Дек. 19, 2007 13:23:01)

Офлайн

#3 Дек. 19, 2007 14:09:57

aliens
От:
Зарегистрирован: 2007-08-14
Сообщения: 135
Репутация: +  1  -
Профиль   Отправить e-mail  

Вопрос по One2One модель.

понятно. Спасибо )



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version