когда то давно я сделал на django кнопку (без views.py! - все в urls.py),
при нажатии на которую будет какая то обработка. :-)
Your text to link here…
urls.py:
from django.contrib import admin from django.urls import path # =========================================>>>>>>>>>>>>>> from django.http import HttpResponse # !!! new (01) k = 0 def home(request): global k k += 1 # stroka = "Привет!!! ===> {0}".format(k) return HttpResponse("<h1>{1}</h1><hr> \ <form><input type='submit' value='{0}'> \ </form>".format(stroka, k)) urlpatterns = [ path('admin/', admin.site.urls), path('', home), ]
Вы скажете: "это ясно даже ежу, без применений
Согласен.
И вот недавно я решил повторить свой подвиг,
и сделать подобное в админке django.
И не тут-то было.
Как мутно советуют ученые мужи и леди на разных сайтах, скопировал я себе в templates из site-packages разные html-ки и даже попытался в models.py сделать функцию. Однако пока не хочет.
Картинки: (в архиве имеются)
Your text to link here…
Кнопки-то я сделал, а на какой адрес сделать <form action=“????”> ?
Это ж внутри админки где-то. Ну даже если найду, мне все-равно надо “снаружи”, из моего проекта.
Или вот: сделал я функцию, вроде даже кнопку тоже - а не считает.
Не понимаю. Код ниже.
Чистый прожект, ничего нет, только админка:
models.py: метод mycounter это кнопка.
==========
from django.db import models # Create your models here. from django.contrib import admin from django.utils.html import format_html class Person(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) color_code = models.CharField(max_length=6) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.mycount1 = 0 def colored_name(self): return format_html('<span style="color: #{};">{} {}</span>', self.color_code, self.first_name, self.last_name) def mycounter(self): self.mycount1 += 1 return format_html('<form method="post" action="."> \ <input type="submit" value="жми кнопку"></form><hr> \ <h1 style="color: #{};">{} </h1>', self.color_code, self.mycount1) class PersonAdmin(admin.ModelAdmin): list_display = ('first_name', 'last_name', 'colored_name', 'mycounter')
admin.py:
————
from django.contrib import admin # Register your models here. from .models import Person, PersonAdmin admin.site.register(Person, PersonAdmin)
———–
from django.contrib import admin from django.urls import path urlpatterns = [ path('admin/', admin.site.urls), ]
У нас бывшая страна советов - дайте совет! :-)
файлы прилагаются. архив dj_button_admin.7z
слезно умоляю о помощи,
челом бью (по коврику от мышки).