Кто-нибудь может увидеть источник этой ошибки?
django.core.exceptions.FieldError: Cannot resolve keyword 'client' into field. Choices are: auditstatushistory, file_num, invoice
Утверждение, вызывающее проблему:
for invoice in Invoice.objects.filter(matter__client__servicer_code = "XXX"):
И определение Материи, которое содержит file_num, а также статистику аудита и счет-фактуру в качестве связанных атрибутов:
class Matter(models.Model):
file_num = models.CharField(max_length=20, primary_key=True)
client = models.ForeignKey("Client", db_column="client_code",
related_name="client")
единственная «странная» вещь здесь - это то, что клиент не существовал как внешний ключ при первоначальной настройке базы данных, поэтому я добавил client_code в базовую таблицу значений через
alter table foo_matter add client_code varchar(10) null;
И в базе данных нет внешнего ключа, связывающего клиента и материю. Единственное, о чем я могу думать, это то, что я неправильно назвал столбец в моей таблице foo_matter. Но я не могу запустить syncdb, чтобы попробовать его, потому что установлен South.
UPDATE:
Просто для хихиканья я попытался начать с совершенно новой базы данных, прокомментировал South и просто выполнил «syncdb», чтобы посмотреть, какие определения таблиц создаст Django. Он создал таблицы Client и Matter, но НЕ создал поле client_code (или client_id) для хранения информации о внешнем ключе.
Кто-нибудь видел подобную ситуацию, когда Джанго просто не создает поле?