Как добавить данные в существующую модель в Django?
Вопрос
В настоящее время я пишу немного CMS на основе продуктов в качестве моего первого проекта.
Вот мой вопрос. Как я могу добавить дополнительные данные (продукты) к моей модели продукта?
Я добавил / admin / products / add 'в свой urls.py, но я не знаю, куда идти. Как бы я построил мой взгляд и мой шаблон? Пожалуйста, имейте в виду, что я не очень много знаю Python, и я очень новичок в Django
Как я могу сделать все это без использования существующего интерфейса администратора django.
Решение
Вы захотите подключить свой URL к Django создать общее представление create_object и передать его либо " model " (модель, которую вы хотите создать) или " form_class " (настраиваемый класс ModelForm ). Существует ряд другие аргументы вы также можете передать, чтобы переопределить поведение по умолчанию.
Пример URLconf для простейшего случая:
from django.conf.urls.defaults import *
from django.views.generic.create_update import create_object
from my_products_app.models import Product
urlpatterns = patterns('',
url(r'^admin/products/add/$', create_object, {'model': Product}))
Ваш шаблон получит контекстную переменную " form ", которую вам просто нужно обернуть в < form > пометить и добавить кнопку отправки. Самый простой рабочий шаблон (по умолчанию он должен быть в & Quot; my_products_app / product_form.html & Quot;):
<form action="." method="POST">
{{ form }}
<input type="submit" name="submit" value="add">
</form>
Обратите внимание, что ваша модель продукта должна иметь метод get_absolute_url, иначе вы должны передать параметр post_save_redirect представлению. В противном случае он не будет знать, куда перенаправить после сохранения.
Другие советы
Следуйте инструкциям по Django для настройки " admin " часть приложения. Это позволит вам изменить вашу базу данных.
Настройка администратора Django
Кроме того, вы можете просто подключиться напрямую к базе данных, используя стандартные инструменты для любого типа базы данных, которую вы используете.
Эта тема описана в руководствах по Django .