我不知道标题是否清楚。我很难以简单的方式解释它,因为问题并不那么简单,而且我不是一个非常优秀的说英语的人。我们欢迎任何提高头衔的建议。
所以,让我们回到实际问题......在我的应用程序中,人们可以加入不同的群体。目前,我正在为此目的创建邀请系统,因此用户可以向其他用户发送邀请。在组视图中,我有一个与该组无关的用户列表,允许组成员邀请这些人。所以,当我进入群组视图时,我正在传递它的主键。要创建关于邀请的数据库单元,我还需要一个组的PK和用户PK(我想用另一个视图来做,但我不确定它是最好的解决方案)。
我的问题是:如何将这两个PK传递到新视图,我将在数据库中创建组用户关系单元格?
models.py :
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
var dictOfSelectedsCells : [Int:String?] = [:]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
tableView.delegate = self
tableView.dataSource = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
extension ViewController : UITableViewDelegate,UITableViewDataSource
{
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 4
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return ButtonTableViewCell.cellHeigth
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if let cell = tableView.dequeueReusableCell(withIdentifier: "ButtonTableViewCell", for: indexPath) as? ButtonTableViewCell
{
cell.selectionStyle = .none
var selectedText : String?
if let currentSelectedText = self.dictOfSelectedsCells[indexPath.row]
{
selectedText = currentSelectedText
}
cell.setupWithClosure(texts:["Variant1","Variant2","Variant3","Variant4"], textSelected: selectedText, closure: { [weak self] (selected) in
debugPrint(indexPath)
self?.dictOfSelectedsCells[indexPath.row] = selected
tableView.reloadRows(at: [indexPath], with: .none)
})
return cell
}
assert(false, "this must not happen")
}
}
views.py :
class Group(models.Model):
name = models.CharField(max_length=500)
members = models.ManyToManyField(User, blank=True, related_name="member")
invitations = models.ManyToManyField(User, blank=True, related_name="invitations")
urls.py :
def not_yet_members_list_view(request, pk):
group = Group.objects.get(pk=pk)
not_yet_members = User.objects.all() #doesn't matter
args = {'group': group, 'not_yet_members': not_yet_members}
return render(request, 'groups/show_members.html', args)
# Here is my problem (this code is a simplified version of what I want to achieve)
def invite_user_view(request, group_pk, user_pk):
invite_user(group_pk, user_pk)
return render(request, 'groups/show_members.html')
template.html :
url(r'^not_yet_members_list/(?P<pk>\d+)/$', views.not_yet_members_list, name='not_yet_members_list'),
答案 0 :(得分:0)
在您需要传递组和用户的视图中
request.session['group_pk'] = group_pk
request.session['user_pk']= user_pk
在您需要访问数据的视图中
group_pk = request.session['group_pk']
user_pk = request.session['user_pk']
然后
invite_user(group_pk, user_pk)
成功发送邀请后
del request.session['group_pk']
del request.session['user_pk']
request.session.modified = True