Şu anki Python/Django projemin bir test yüklemesini ayarlama aşamasındayım. Her şey dev sunucumda harika çalışıyor, ancak son zamanlarda test için yeni bir VM ve projenin nihai üretim kopyalarını oluşturduk. Python, Django, SqlAlchemy (MSSQL backend ile) ve WTForms'u ana paketlerim arasında kullanıyorum.QuerySelectField, bir sunucuda çalışır, aynı kodla başka birilerini koparır
Test sunucumun düzgün davranmadığı bir sorun yaşıyorum. Bu paketleri kişisel olarak kurmamış veya yüklememiştim (ki şu anda gitmiş biri tarafından yapılmıştı), bu yüzden bu konuda her şeyi bilmiyorum, ama test sunucumda bunu biliyorum. Dev sunucusunda çok fazla sorun yaşıyorum. Örneğin, Django bunları şablonlarda kullandığımda (geri dönüş değeri yerine '...' yerine 'UserForm.action parametresini döndürür) yöntemlerle düzgün bir şekilde çözümlemiyordu ve şimdi bazı şeyleri bir yere yazıyor gibi görünüyor. Tam olarak bildirilmedikleri zaman tamsayılar. Python, django, wtforms, sqlalchemy sürümleri tüm sunucularda aynıdır. İşte dev sunucuda çalışıyor örnek kod, ama (hata mesajı ile birlikte) test sunucusunda kırar:
forms.py:
class NewPracticeForm(wtforms.Form):
Name = wtforms.TextField("Practice Name", [wtforms.validators.Required()])
OrgID = safields.QuerySelectField("Organization", pk_attr='OrgID')
action = '/Admin/H/newpractice/'
pulsedb.py (sqlalch tablo tanım):
#engine created here, can include that if necessary but its just a standard engine=create_engine() using pymssql
Base = declarative_base()
metadata = Base.metadata
class Practice(Base):
__tablename__ = 'Practice'
Name = Column(String(256) , nullable=False)
OrgID = Column(String(30) , ForeignKey('dbo.Orglist.OrgID') , nullable=False)
views.py:
def partNewPractice(request):
context = Context()
frm = forms.NewPracticeForm()
frm.OrgID.query = pwdb.session.query(pwdb.OrglistMap)
context['form'] = frm
#Return the response here using a method which just tacks a couple things on before returning a normal response
Ve bu yüzden, ben seçme alanında bir kuruluş seçin, wh ich posts 'OrgID = Z55' (OrgID tablosu bir ID sütunu olarak 3character dizgisi kullandığı için), ancak satır boyunca bir yere bu sorun çıkarır. yapan bir işleyici form puan:
services.py
def HandlerAddPractice(request):
prac = pdb.Practice()
frm = forms.NewPracticeForm(request.POST, obj=prac)
frm.OrgID.query = pwdb.session.query(pwdb.OrglistMap)
Ve program bir hata atar çünkü, bildiğim kadarıyla o alır gibi değil: bunu bulmuşken
invalid literal for int() with base 10: 'Z55'
Ayrıca, bir UUID'yi bir nedenle tamsayıya dönüştürmeye çalıştığı QuerySelectField ile benzer bir alanda olur. Kaybettiğim bir yer var mı? Metoduyla uğraştım, ama bu noktada görmezden gelip çalışabileceğim bir şey değil. Teşekkürler! Diğer kod/bilgi istek üzerine mevcuttur. Ayrıca, birçok başka alan var, ama onları kıskançlık çıkarına bıraktım.
Django tam olarak nerede oynuyor? –
Eğer SQLalchemy ve WTForms kullanıyorsanız, Django kullanmaya değer görünmüyor :) – Anentropic
Django'yu kaldırırsanız (bir çok yerde @AndreBossard'ın nerede kullanıldığını göremiyorum) ve hafif bir şey kullandığınızda çok fazla sorunu ortadan kaldırabilirsiniz. WTForms ve SQLAlchemy'ı destekleyen Flask gibi. –