Я должен вставить логику проверки ПОСТЕПЕННО?

Это не то, как django работает. Вы только создали бы отношение, идущее одним путем.

class Parent(models.Model):
  name = models.CharField(max_length=255)

class Child(models.Model):
  name = models.CharField(max_length=255)
  myparent = models.ForeignKey(Parent)

И если бы Вы пытались получить доступ к детям от родителя, Вы сделали бы parent_object.child_set.all(). Если бы Вы устанавливаете related_name в myparent поле, то, именно это Вы отослали бы к нему как. Исключая: related_name='children', тогда Вы сделали бы parent_object.children.all()

Read эти документы http://docs.djangoproject.com/en/dev/topics/db/models/#many-to-one-relationships для больше.

11
задан Daniel T. 25 September 2009 в 22:00
поделиться

2 ответа

Рассмотрите возможность использования аспектно-ориентированной структуры проверки, такой как xVal .

Вместо того, чтобы включать ваши правила проверки непосредственно в код, вы можете добавить их как атрибуты ваших свойств и разгрузить зависимость. Ваш класс будет выглядеть так:

public class Name
{
    [Required]
    public string FirstName { get; set; }
    [Required]
    public string LastName { get; set; }
}

Чтобы более точно ответить на ваш вопрос, добавление правил проверки к вашему POCO - это простой способ делать вещи, которые будут работать, но это может быть тяжело поддерживать, и вы ' Мне нужно будет принудительно применить интерфейс Validate ко всем вашим объектам, что является головной болью. Аспектно-ориентированное решение - довольно элегантное решение, которое решает эти и многие другие проблемы.

2
ответ дан 3 December 2019 в 11:21
поделиться

Я бы не стал. Мои POCO, как правило, имеют различную проверку в зависимости от их контекста. «Объекты My Person должны иметь адрес в этом приложении, но у них должен быть только номер телефона в этом другом приложении» ... это то, за чем вы хотите следить и быть гибким.

Я сторонник модели анемичного домена, поскольку обычно повторно использую один и тот же домен, но назначаю другое поведение и проверку в зависимости от контекста (которые могут даже быть разными областями одного и того же приложения).

При реализации новых функций я Обычно смотрят на мой класс и задают себе вопрос: похоже ли это на ответственность этого класса, или это было бы более подходящим для класса с другим набором обязанностей? Мы называем это проверкой на «зависть к особенностям».

4
ответ дан 3 December 2019 в 11:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: