


Kenntnisse im Backend-Managementsystem im Django-Framework (Teil 2)
Backend-Managementsystem-Fähigkeiten im Django-Framework (Teil 2)
Im vorherigen Artikel haben wir einige Backend-Managementsystem-Fähigkeiten im Django-Framework vorgestellt, z. B. wie man das Layout der Hintergrundseite anpasst, wie man Filter anpasst, wie man benutzerdefinierte Aktionen durchführt, usw. In diesem Artikel werden weitere praktische Tipps vorgestellt, die Ihnen helfen, das Django-Framework besser zu nutzen.
- So gehen Sie mit dem Standardwert von ForeignKey im Modell um
Im Django-Modell ist ForeignKey ein sehr praktischer Feldtyp. Wenn wir jedoch eine neue Modellinstanz erstellen, muss das ForeignKey-Typfeld eine Instanz des zugehörigen Modells angeben, damit es erfolgreich gespeichert werden kann. Wenn nicht angegeben, werden NULL-Werte standardmäßig gespeichert. In einigen Fällen möchten wir möglicherweise, dass das Feld vom Typ ForeignKey in einer Standardzuordnungsinstanz gespeichert wird. In diesem Fall können wir die Methode get_or_create von Django verwenden.
Zum Beispiel haben wir ein Produktmodell und definieren dafür ein ProductCategory-ForeignKey-Feld. Wir möchten automatisch eine Standardkategorieinstanz zuordnen, wenn wir eine neue Produktinstanz erstellen. Wir können dem Modell den folgenden Code hinzufügen:
class Product(models.Model): name = models.CharField(max_length=100) category = models.ForeignKey(ProductCategory, default=get_default_category) def get_default_category(): """ 返回默认的ProductCategory实例或者创建一个新的实例 """ category, _ = ProductCategory.objects.get_or_create(name='Default Category') return category
In Auf diese Weise wird beim Erstellen einer neuen Produktinstanz standardmäßig automatisch eine ProductCategory-Instanz mit dem Namen „Standardkategorie“ zugeordnet.
- Wie kann man ein Modell im Hintergrundverwaltungssystem darauf beschränken, nur eine Instanz zu erstellen?
In manchen Fällen möchten wir möglicherweise, dass ein Modell nur eine Instanz erstellt, beispielsweise bei globalen Einstellungen auf einer Website. Zu diesem Zeitpunkt können Sie die SingletonModel-Bibliothek von Django verwenden, die ein BaseSingletonModel bereitstellt, mit dem wir jedes Modell problemlos in ein Singleton-Modell konvertieren können.
Zum Beispiel haben wir ein GlobalSettings-Modell und hoffen, dass es nur eine Instanz erstellen kann. Es kann wie folgt definiert werden:
from singleton_models.models import SingletonModel class GlobalSettings(SingletonModel): site_name = models.CharField(max_length=100, default='') site_url = models.URLField(default='') # 其他全局设置字段
Nachdem wir es definiert haben, können wir im Hintergrundverwaltungssystem nur eine GlobalSettings-Instanz erstellen und bearbeiten.
- So fügen Sie benutzerdefinierte Middleware zum Backend-Managementsystem hinzu
Im Django-Framework ist Middleware ein Interceptor, der zur Verarbeitung von Anfragen und Antworten verwendet wird. Es kann die Anfrage oder Antwort verarbeiten, bevor die Anfrage die Ansichtsfunktion erreicht, nachdem die Ansichtsfunktion die Anfrage verarbeitet hat und bevor die Antwort an den Client gesendet wird. Unter anderem ermöglicht uns das Hinzufügen benutzerdefinierter Middleware zum Hintergrundverwaltungssystem, die Vorgänge des Administrators einfach abzufangen und zu verarbeiten.
Wenn wir beispielsweise möchten, dass der Administrator bei bestimmten Änderungsvorgängen ein sekundäres Bestätigungskennwort eingeben muss, können wir der Datei „settings.py“ des Django-Projekts den folgenden Code hinzufügen:
MIDDLEWARE = [ # 默认的中间件 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', # 自定义中间件 'myapp.middleware.ConfirmPasswordMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] CONFIRMED_ACTIONS = ( 'myapp.views.EditProductView', 'myapp.views.DeleteProductView', ) class ConfirmPasswordMiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): # 根据请求的URL判断是哪个视图函数,如果是CONFIRMED_ACTIONS中的视图函数,需要做二次确认 view_func = resolve(request.path_info).func if view_func and view_func.__module__ + "." + view_func.__name__ in CONFIRMED_ACTIONS: if not request.session.get('password_confirmed', False): # 没有输入二次确认密码,跳转到输入页面 return redirect(reverse('confirm-password')) response = self.get_response(request) return response
Im obigen Code haben wir Definieren Sie eine ConfirmPasswordMiddleware. Sie fängt die Anfrage ab, bevor sie die Ansichtsfunktion erreicht, und bestimmt, ob ein zweites Bestätigungskennwort erforderlich ist. CONFIRMED_ACTIONS ist eine Liste von Ansichtsfunktionen, die eine sekundäre Bestätigung erfordern. Wir können sie nach Bedarf hinzufügen oder löschen. In der Ansichtsfunktion können wir über request.session.get('password_confirmed', False) abfragen, ob der aktuelle Benutzer das sekundäre Bestätigungskennwort eingegeben hat.
- So fügen Sie dem Modell des Backend-Managementsystems einen Serializer hinzu
Im Django-Framework ist Serializer eine Klasse, die zum Konvertieren des Modells in ein Wörterbuch- oder JSON-Format verwendet wird. Durch das Hinzufügen eines Serialisierers zum Backend-Managementsystem können wir das Modell einfach in das JSON-Format konvertieren und ausgeben.
Zum Beispiel haben wir ein Produktmodell und möchten es in das JSON-Format konvertieren und im Hintergrundverwaltungssystem ausgeben. Es kann wie folgt definiert werden:
from django.contrib import admin from django.core.serializers import serialize from django.http import HttpResponse class ProductAdmin(admin.ModelAdmin): # 列表视图显示的字段列表 list_display = ('name', 'price', 'category') # 自定义action函数 def export_as_json(self, request, queryset): response = HttpResponse(content_type="application/json") serializers.serialize("json", queryset, stream=response) return response export_as_json.short_description = "导出为JSON" # 自定义函数按钮 change_list_template = 'admin/myapp/product/list.html' def get_urls(self): urls = super().get_urls() my_urls = [ path('my_view/', self.my_view), ] return my_urls + urls def my_view(self, request): data = serialize('json', Product.objects.all()) return JsonResponse(data, safe=False) admin.site.register(Product, ProductAdmin)
Im obigen Code haben wir ProductAdmin eine export_as_json-Funktion hinzugefügt. Das kann Die aktuell ausgewählte Modellinstanz wird in das JSON-Format konvertiert und an den Client ausgegeben. Gleichzeitig haben wir ProductAdmin auch eine my_view-Funktion hinzugefügt, die alle Modellinstanzen direkt abfragen und in die Ausgabe im JSON-Format konvertieren kann.
Zusammenfassung
Das Hintergrundverwaltungssystem des Django-Frameworks ist ein wichtiges Werkzeug für die Entwicklung von Webanwendungen. Es bietet viele vorgefertigte Funktionen, mit denen wir Modellinstanzen, Stapeländerungen und Löschungen einfach verwalten können. In diesem Artikel stellen wir einige praktische Tipps für das Backend-Verwaltungssystem des Django-Frameworks vor, darunter den Umgang mit dem Standardwert von ForeignKey im Modell, die Beschränkung eines Modells im Backend-Verwaltungssystem auf die Erstellung nur einer Instanz und das Hinzufügen Anpassung an das Backend-Managementsystem. Definieren Sie Middleware und wie Sie Serialisierer zum Modell des Backend-Managementsystems hinzufügen. Durch den Einsatz dieser Techniken können wir das Hintergrundverwaltungssystem des Django-Frameworks besser nutzen.
Das obige ist der detaillierte Inhalt vonKenntnisse im Backend-Managementsystem im Django-Framework (Teil 2). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Teilen von Win11-Tipps: Ein Trick, um die Anmeldung bei einem Microsoft-Konto zu überspringen Windows 11 ist das neueste Betriebssystem von Microsoft mit neuem Designstil und vielen praktischen Funktionen. Für einige Benutzer kann es jedoch etwas nervig sein, sich bei jedem Systemstart bei ihrem Microsoft-Konto anmelden zu müssen. Wenn Sie einer von ihnen sind, können Sie auch die folgenden Tipps ausprobieren, die es Ihnen ermöglichen, die Anmeldung mit einem Microsoft-Konto zu überspringen und direkt auf die Desktop-Oberfläche zuzugreifen. Zunächst müssen wir anstelle eines Microsoft-Kontos ein lokales Konto im System erstellen, um uns anzumelden. Der Vorteil dabei ist

In der C-Sprache stellt es einen Zeiger dar, der die Adresse anderer Variablen speichert; & stellt den Adressoperator dar, der die Speicheradresse einer Variablen zurückgibt. Zu den Tipps zur Verwendung von Zeigern gehören das Definieren von Zeigern, das Dereferenzieren von Zeigern und das Sicherstellen, dass Zeiger auf gültige Adressen zeigen. Tipps zur Verwendung von Adressoperatoren sowie das Abrufen von Variablenadressen und das Zurückgeben der Adresse des ersten Elements des Arrays beim Abrufen der Adresse eines Array-Elements . Ein praktisches Beispiel, das die Verwendung von Zeiger- und Adressoperatoren zum Umkehren einer Zeichenfolge veranschaulicht.

Wir erstellen und bearbeiten Tabellen oft in Excel, aber als Neuling, der gerade erst mit der Software in Berührung gekommen ist, ist die Verwendung von Excel zum Erstellen von Tabellen nicht so einfach wie für uns. Im Folgenden führen wir einige Übungen zu einigen Schritten der Tabellenerstellung durch, die Anfänger, also Anfänger, beherrschen müssen. Wir hoffen, dass sie für Bedürftige hilfreich sind. Unten sehen Sie ein Beispielformular für Anfänger: Mal sehen, wie man es ausfüllt! 1. Es gibt zwei Methoden, ein neues Excel-Dokument zu erstellen. Sie können mit der rechten Maustaste auf eine leere Stelle in der Datei [Desktop] – [Neu] – [xls] klicken. Sie können auch [Start]-[Alle Programme]-[Microsoft Office]-[Microsoft Excel 20**] wählen. 2. Doppelklicken Sie auf unser neues Ex

VSCode (Visual Studio Code) ist ein von Microsoft entwickelter Open-Source-Code-Editor. Er verfügt über leistungsstarke Funktionen und umfangreiche Plug-in-Unterstützung, was ihn zu einem der bevorzugten Tools für Entwickler macht. Dieser Artikel bietet eine Einführung für Anfänger, die ihnen hilft, schnell die Fähigkeiten im Umgang mit VSCode zu erlernen. In diesem Artikel stellen wir die Installation von VSCode, grundlegende Bearbeitungsvorgänge, Tastenkombinationen, Plug-In-Installation usw. vor und stellen den Lesern spezifische Codebeispiele zur Verfügung. 1. Installieren Sie zuerst VSCode, wir brauchen

Win11-Tricks aufgedeckt: So umgehen Sie die Anmeldung bei einem Microsoft-Konto. Vor kurzem hat Microsoft ein neues Betriebssystem Windows11 auf den Markt gebracht, das große Aufmerksamkeit erregt hat. Im Vergleich zu früheren Versionen hat Windows 11 viele neue Anpassungen in Bezug auf das Interface-Design und funktionale Verbesserungen vorgenommen, aber es hat auch einige Kontroversen ausgelöst. Der auffälligste Punkt ist, dass es Benutzer dazu zwingt, sich mit einem Microsoft-Konto am System anzumelden . Einige Benutzer sind möglicherweise eher daran gewöhnt, sich mit einem lokalen Konto anzumelden, und sind nicht bereit, ihre persönlichen Daten an ein Microsoft-Konto zu binden.

Titel: PHP-Programmiertipps: So springen Sie innerhalb von 3 Sekunden zu einer Webseite. Bei der Webentwicklung stoßen wir häufig auf Situationen, in denen wir innerhalb einer bestimmten Zeitspanne automatisch zu einer anderen Seite springen müssen. In diesem Artikel wird erläutert, wie Sie mit PHP Programmiertechniken implementieren, um innerhalb von 3 Sekunden zu einer Seite zu springen, und spezifische Codebeispiele bereitstellen. Zunächst wird das Grundprinzip des Seitensprungs über das Standortfeld im HTTP-Antwortheader realisiert. Durch Setzen dieses Feldes kann der Browser automatisch zur angegebenen Seite springen. Nachfolgend finden Sie ein einfaches Beispiel, das die Verwendung von P demonstriert

Formulare sind ein wesentlicher Bestandteil beim Schreiben einer Website oder Bewerbung. Laravel bietet als beliebtes PHP-Framework umfangreiche und leistungsstarke Formularklassen, die die Formularverarbeitung einfacher und effizienter machen. In diesem Artikel werden einige Tipps zur Verwendung von Laravel-Formularklassen vorgestellt, die Ihnen dabei helfen, die Entwicklungseffizienz zu verbessern. Im Folgenden wird anhand spezifischer Codebeispiele ausführlich erläutert. Erstellen eines Formulars Um ein Formular in Laravel zu erstellen, müssen Sie zunächst das entsprechende HTML-Formular in die Ansicht schreiben. Wenn Sie mit Formularen arbeiten, können Sie Laravel verwenden

Bei der Entwicklung von Go-Sprachprogrammen sind Fähigkeiten zur Funktionsrekonstruktion ein sehr wichtiger Teil. Durch die Optimierung und Umgestaltung von Funktionen können Sie nicht nur die Codequalität und Wartbarkeit verbessern, sondern auch die Programmleistung und Lesbarkeit verbessern. Dieser Artikel befasst sich mit den Funktionsrekonstruktionstechniken in der Go-Sprache, kombiniert mit spezifischen Codebeispielen, um den Lesern zu helfen, diese Techniken besser zu verstehen und anzuwenden. 1. Codebeispiel 1: Extrahieren Sie doppelte Codefragmente. In der tatsächlichen Entwicklung stoßen wir häufig auf wiederverwendete Codefragmente. Zu diesem Zeitpunkt können wir das Extrahieren des wiederholten Codes als unabhängige Funktion in Betracht ziehen
