Как работать с администратором django для странового раздела с той же страницей со списком спины и веб-интерфейса - PullRequest
0 голосов
/ 11 октября 2018

Я новичок в Джанго.Я создаю приложение countries, которое будет иметь страницу со списком как в веб-интерфейсе, так и в бэкэнде.Я управляю веб-интерфейсом, написав код в корне urls.py

path('countries/', include(('countries.urls', 'countries'), namespace = 'countries'))

И в странах / urls.py

path('', views.index, name='index'),

в models.py Я пишу модель страны для веб-интерфейса и In views.py написать index функция для внешнего интерфейса.Это мой models.py

class Country(models.Model):
    iso_code    = models.CharField(max_length=2, unique=True)
    name        = models.CharField(max_length=255, unique=True)
    is_featured = models.IntegerField(max_length=1)

    class Meta:
        db_table = 'countries'

И в views.py я пишу

def index(request):
    countries = Country.objects.all().order_by('id')
    context = {
        "countries" : countries
    }
    return render(request, 'countries/index.html', context)

Если я запускаю http://127.0.0.1:8000/countries/, тогда он загрузит страницу со списком стран во внешнем интерфейсе.Теперь я хочу, чтобы http://127.0.0.1:8000/admin/countries/ увидел страницу со списком бэкэндов с пользовательским шаблоном администратора.Пожалуйста, помогите мне, если кто-то знает, если я добавлю path('admin/countries/', include(('countries.urls', 'countries'), namespace = 'countries')), в urls.py, то http://127.0.0.1:8000/admin/countries/ также займет ту же страницу шаблона и не покажет шаблон администратора.

1 Ответ

0 голосов
/ 11 октября 2018

В admin.py вашего countries приложения сделайте следующее:

Хотя обратите внимание, что это для django 2.x.Вы не указали свою версию, но django 1.x не сильно отличается от следующего примера.Я просто быстро просмотрел 1.11, и 2 атрибута, которые я проверил в разделе параметров, были одинаковыми здесь. Если вы получили ошибку, измените нужную версию и исправьте атрибут.

from .models import Country
from django.contrib import admin

@admin.register(Country)
class CountryAdmin(admin.ModelAdmin):
    list_display = ['iso_code', 'name', 'is_featured']
    list_editable = ['name']  # Add more here if you want to edit them inline.
    list_filter = ['iso_code']  # add more to be able to filter your model
    list_per_page = 10  # paginates the amount that show up per page
    search_fields = ['name', 'iso_code']  # field names searched
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...