我是 Django 的新手,我已经尽力去理解它,但我还有很长的路要走。 我正在做一个项目,我必须制作一个网页,我必须在其中显示来自这些类的数据:
class team(models.Model):
team_name = models.CharField(max_length = 40)
def __unicode__(self):
return self.team_name
class metric(models.Model):
team = models.ForeignKey(team)
metric_name = models.CharField(max_length = 40)
def __unicode__(self):
return self.metric_name
class members(models.Model):
metric = models.ForeignKey(metric)
member_ID = models.CharField(max_length = 40)
member_name = models.CharField(max_length = 40, null=True, blank=True)
def __unicode__(self):
return self.member_ID
此外,我希望这些数据也可以编辑。这意味着应该有一个编辑按钮,一旦按下该按钮,用户就可以编辑这些字段,一旦他保存它,数据库就会自动更新。
据我所知。我需要使用某种表格来显示这些数据,然后一旦用户单击“编辑”按钮,我就必须将表格更改为表格以便他可以编辑数据?然后在他点击保存后更新数据库。
我不确定如何在 Django 中完成所有这些工作。 如果有人可以逐步向我介绍如何进行,也许可以引用一些引用资料,这会对我有很大帮助
谢谢:)
更新:我之前忘记提了。我已经创建了一个页面,用户在其中选择 team_name.. 然后他被重定向到另一个页面,我想在其中显示该特定团队的表格。而且我还希望该页面是可编辑的。如果我使用模型形式,那么我将无法访问我的团队模型的单个对象。
更新 2: 我仍然停留在这个问题上。我不明白如何只显示模型类的少数元素和变量而不是全部。除此之外,我不明白如何创建一个表单,该表单可以从用户那里获取有关要编辑的数据库对象的输入,然后显示该特定对象是可编辑的。
最佳答案
相关提问者-评论here和 here . 首先,你应该把你的类名写成大写。请查看 documentation .
您可以像这样为查询集创建表单。
表单.py
from django.forms import ModelForm
class MembersForm(ModelForm):
class Meta:
model = Members
urls.py
from django.conf.urls.defaults import *
urlpatterns = patterns('yourapp.views',
url(r'^$',
# /
view = 'index',
name = 'team-index',
),
url(r'^(?P<lookup_team>[-\w]+)/$',
# .../team-extreme/
view = 'update',
name = 'update-members',
),
)
views.py(您的应用程序)
from django.http import HttpResponse
from django.template.context import RequestContext
from django.shortcuts import render_to_response, reverse, redirect
from yourapp.models import Members
from yourapp.forms import MembersForm
def index(request):
queryset = Members.objects.all()
template = 'yourapp/index.html'
kwvars = {
'data': queryset,
}
return render_to_response(template, kwvars, RequestContext(request))
def update(request, lookup_team):
"""change members being in a special team"""
queryset = Members.objects.filter(metric__team__team_name=lookup_team)
if request.POST:
form = MemberForm(request.POST, instance=queryset)
if form.is_valid():
form.save()
return redirect(reverse('team-index'))
else:
form = MemberForm(instance=queryset)
template = 'yourapp/update.html'
kwvars = {
'form': form,
}
return render_to_response(template, kwvars, RequestContext(request))
希望这对您有所帮助。如果您有任何问题,请给我留言。
关于python - Django:如何创建表,然后通过它们更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12828913/