将参数转换为字符串

Convert argument to string

以前从未使用过 Struct。当聘请开发人员进行某些工作时,他使用了这个,但它不起作用。开发人员没有回答...拜托,有人可以帮助解决这个问题吗?

来自 views.py,您可以在下面看到,我在 'InvId': str(struct.unpack('=H', urandom(2))[0]), 中遇到错误 Struct() argument 1 must be string, not unicode。那么,如何将其转换为字符串呢?

@login_required
def userprofile(request, username):

    extra_context = dict()

    if request.POST:
        user_form = UserForm(request.POST, instance=request.user)
        user_profile = UserProfileForm(request.POST, request.FILES,
                                       instance=request.user.profile)
        if user_form.is_valid():
            user_form.save()
        if user_profile.is_valid():
            user_profile.save()
    else:
        user_form = UserForm(
            instance=request.user,
            initial={
                'first_name': request.user.first_name,
                'last_name': request.user.last_name,
                'email': request.user.email,
            })
        user = request.user
        profile = user.profile
        user_profile = UserProfileForm(instance=profile)

    extra_context['user_form'] = user_form
    extra_context['user_profile'] = user_profile
    extra_context['robo_form'] = RobokassaForm(initial={
        'UserId': request.user.id,
        'OutSum': 1000,
        'InvId': struct.unpack('=H', urandom(2))[0],
        'Email': request.user.email,
    })

    return render_to_response('profile.html', extra_context, context_instance=RequestContext(request))

struct.unpack('=H', urandom(2))[0] 太蠢了。只需以可读的方式生成一个整数:

'InvId': random.randrange(2**16),