SORU
12 Ocak 2010, Salı


Tek bir ana sayfaya iki sayfa kumdan kaleyi tarafından oluşturulan birleştirmek mümkün mü?

Projede her sınıf için, kumdan yaptığın kale (diğerleri arasında) iki sayfa oluşturur:

  • Ana Sayfa, açıklama, Sözdizimi, Kalıtım Hiyerarşisi T_class_full_name) olarak adlandırılan ve Ayrıca Bkz
  • Üyeler sayfa, Yapıcılar, Yöntemleri, Alanlar, vb ile* *6, denir.

Bir şekilde bu iki birlikte members page ana sayfaya eklenmiş olması ile birleştirme var mı?

CEVAP
6 Mart 2013, ÇARŞAMBA


Kafamda bazı günler kırdıktan sonra, AYNI BANKA Yabancı anahtarımı almayı başardım!

Farklı bir bankada FORM üzerinde bir değişiklik YABANCI bir ANAHTAR aramak için yapılabilir!

İlk olarak, ALANLARI, hem doğrudan (çatlak) benim form, fonksiyon bir ŞARJ ekleyin_ınit_

app.form.py

# -*- coding: utf-8 -*-
from django import forms
import datetime
from app_ti_helpdesk import models as mdp

#classe para formulario de Novo HelpDesk
class FormNewHelpDesk(forms.ModelForm):
    class Meta:
        model = mdp.TblHelpDesk
        fields = (
        "problema_alegado",
        "cod_direcionacao",
        "data_prevista",
        "hora_prevista",
        "atendimento_relacionado_a",
        "status",
        "cod_usuario",
        )

    def __init__(self, *args, **kwargs):
        #-------------------------------------
        #  using remove of kwargs
        #-------------------------------------
        db = kwargs.pop("using", None)

        # CASE use Unique Keys
        self.Meta.model.db = db

        super(FormNewHelpDesk, self).__init__(*args,**kwargs)

        #-------------------------------------
        #   recreates the fields manually
        from copy import deepcopy
        self.fields = deepcopy( forms.fields_for_model( self.Meta.model, self.Meta.fields, using=db ) )
        #
        #-------------------------------------

        #### follows the standard template customization, if necessary

        self.fields['problema_alegado'].widget.attrs['rows'] = 3
        self.fields['problema_alegado'].widget.attrs['cols'] = 22
        self.fields['problema_alegado'].required = True
        self.fields['problema_alegado'].error_messages={'required': 'Necessário informar o motivo da solicitação de ajuda!'}


        self.fields['data_prevista'].widget.attrs['class'] = 'calendario'
        self.fields['data_prevista'].initial = (datetime.timedelta(4) datetime.datetime.now().date()).strftime("%Y-%m-%d")

        self.fields['hora_prevista'].widget.attrs['class'] = 'hora'
        self.fields['hora_prevista'].initial =datetime.datetime.now().time().strftime("%H:%M")

        self.fields['status'].initial = '0'                 #aberto
        self.fields['status'].widget.attrs['disabled'] = True

        self.fields['atendimento_relacionado_a'].initial = '07'

        self.fields['cod_direcionacao'].required = True
        self.fields['cod_direcionacao'].label = "Direcionado a"
        self.fields['cod_direcionacao'].initial = '2'
        self.fields['cod_direcionacao'].error_messages={'required': 'Necessário informar para quem é direcionado a ajuda!'}

        self.fields['cod_usuario'].widget = forms.HiddenInput()

görünümünden Form arama

app.view.py

form = forms.FormNewHelpDesk(request.POST or None, using=banco)

Şimdi, kaynak kodunda değişiklik DJANGO

Yazın ForeignKey, ManyToManyField ve OneToOneField sadece alanları kullanma', yani bir ilave ... kullanabilirsiniz

django.forms.models.py

# line - 133: add using=None
def fields_for_model(model, fields=None, exclude=None, widgets=None, formfield_callback=None, using=None):

# line - 159

if formfield_callback is None:
    #----------------------------------------------------
    from django.db.models.fields.related import (ForeignKey, ManyToManyField, OneToOneField)
    if type(f) in (ForeignKey, ManyToManyField, OneToOneField):
        kwargs['using'] = using

    formfield = f.formfield(**kwargs)
    #----------------------------------------------------
elif not callable(formfield_callback):
    raise TypeError('formfield_callback must be a function or callable')
else:
    formfield = formfield_callback(f, **kwargs)

DOSYA TAKİP DEĞİŞTİREBİLİR

django.db.models.base.py

alter

# line 717
qs = model_class._default_manager.filter(**lookup_kwargs)

için

# line 717
qs = model_class._default_manager.using(getattr(self, 'db', None)).filter(**lookup_kwargs)

Hazır :D

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • case LianLi

    case LianLi

    28 Mayıs 2010
  • MW Technology

    MW Technolog

    28 EKİM 2009
  • TSE

    TSE

    12 Kasım 2012