Django creează un model dinamic în timp de execuție, trebuie să reporniți serverul pentru a reflecta acest lucru, de ce? (Programare, Django, Dinamic, Modele)

Ajay Kumar a intrebat.
a intrebat.

Creez modele dinamice prin referire la acest link https://code.djangoproject.com/wiki/DynamicModels, , de aici pot crea tabele în baza de date în timpul execuției.

Și pot vedea tabelul creat prin comanda de mai jos

python manage.py inspectdb test1

se întoarce în format django models.py,

În pasul următor, încerc să duc acest tabel creat în fișierul models.py al aplicației prin comanda de mai jos

python manage.py inspectdb test1 > app/models.py

Apoi, în fișierul mdoels.py obțin ceva de genul acesta

class Test1(models.Model):
    first_name = models.CharField(max_lengtgh=255)
    last_name = models.CharField(max_lengtgh=255)

Apoi, voi reda aceste modele în forms.py.

from models import Test1

class Test1Form(forms.ModelForm):
    class Meta:
        model = Test1

și apoi chem acest formular în views.py și îl redau în șablon ca formular de intrare.

views.py

from forms import Test1Form

def myveiw(request, template_name="mytemplate.html"):
    args = {}
    form = Test1Form()
    args['form'] = form
    return TemplateResponse(request, template_name, args)

mytemplate.html

<form method="post">{% csrf_token %}
    {{form}}
    <button type="submit">Submit</button>
</form>

Aici totul funcționează bine în timpul execuției, dar de fiecare dată trebuie să repornesc serverul django pentru a vedea formularul din șablon, de ce? După repornire, pot vedea formularul din șablon.

De ce este nevoie de o repornire, puteți să mă ajutați, vă rog, să mă ajutați în acest sens, dacă modul meu este corect sau trebuie să îmi schimb abordarea? Vă rog să mă anunțați că va fi foarte mare complet pentru mine. Vă mulțumesc anticipat.

Comentarii

  • unde este funcția de vizualizare? –  > Por Exprator.
1 răspunsuri
cookiedough

Am avut o problemă similară, a trebuit să ruleze makemigrations și migrate comenzi după crearea modelelor dinamice pentru a o rezolva. Încercați să adăugați următorul script imediat după ce ați creat modelele:

from django.core.urlresolvers import clear_url_caches
from django.utils.module_loading import import_module
from django.core.management import call_command

admin.site.register(model, admin_opts)
reload(import_module(settings.ROOT_URLCONF))
clear_url_caches()

call_command('makemigrations')
call_command('migrate')

Comentarii

  • Vă mulțumim pentru răspuns. Lăsați-mă să lucrez la acest lucru și să vă trimit înapoi. –  > Por Ajay Kumar.
  • @AjayKumar vreun noroc? –  > Por cookiedough.