前段时间我刚刚开始使用django,我有点麻烦才能完成这项工作。 我只是想组建一个由成员和成员组成主题的小组。现在,我挣扎的地方在于我不知道如何将这个主题添加到小组中。
如何通过showmessage(如果正确)创建主题并将主题与组连接。
尝试在人与人之间进行一些对话。以后我可以添加人员加入对话。 有些日子我被卡住帮助了我!
我的观点
def showcreate(request):
p = Group.objects.all()
return render(request,'messages/showcreate/showcreate.html',{ 'p':p})
def show(request, item):
items = item
p = Group.objects.all()
test='/show/'+item
print "showing item: 12, "+item
if request.method == 'POST':
form = showmessage(request.POST)
if form.is_valid():
print "here too : "+request.POST['q'] ***** This is me trying to make it work***
storyi = form.save(commit=False)
storyi.Topics.user = request.user
storyi.Topics.wichgroupe = request.POST['q']
storyi.save()
return HttpResponseRedirect(test)
else:
form=StoryForm()
return render(request,'messages/show/show.html',{ 'p':p,'item':items,'form':form})
URL
url(r'^show/(?P<item>\w+)', 'djangoproject.home.views.show', name='show' ),
url(r'^/showcreate', 'djangoproject.home.views.showcreate' ,name='showcreate' ),
模型
class Topic(models.Model):
user = models.ForeignKey(User)
postit = models.TextField(max_length=300)
comment = models.TextField(max_length=300)
createdat = models.DateTimeField(default=timezone.now)
wichgroupe = models.TextField(max_length=300, default="all")
def timer(self):
return self.createdat
def __str__(self): # __unicode__ on Python 2
return self.postit
class Group(models.Model):
name = models.CharField(max_length=100)
members = models.ManyToManyField(User)
Topics = models.ManyToManyField(Topic)
def __str__(self): # __unicode__ on Python 2
return self.name
形式:
class StoryForm(ModelForm):
class Meta:
model = Topic
exclude =('user','createdat','comment','wichgroupe')
class Grouping(ModelForm):
class Meta:
model = Group
exclude =('Topics','members')
class showmessage(ModelForm):
class Meta:
model = Group
exclude=('user','createdat','comment','wichgroupe','Topics','members','name')
答案 0 :(得分:0)
它不是100%明确,但我怀疑您的问题是您希望在创建主题时设置组,但您已将主题定义为M2M in集团,而不是相反。所以它不会自动发生。
您可以在主题中引用组的集合:
mytopic.group_set
要在表单上呈现这些内容,您可以按照this doc为这些相关对象添加内联表单集。