相关疑难解决方法(0)

Django设置默认表单值

我有一个模型如下.

class TankJournal(models.Model):
    user = models.ForeignKey(User)
    tank = models.ForeignKey(TankProfile)
    ts = models.IntegerField(max_length=15)
    title = models.CharField(max_length=50)
    body = models.TextField()
Run Code Online (Sandbox Code Playgroud)

我还有一个上述模型的模型表格如下.

class JournalForm(ModelForm):
    tank = forms.IntegerField(widget=forms.HiddenInput()) 

    class Meta:
        model = TankJournal
        exclude = ('user','ts')
Run Code Online (Sandbox Code Playgroud)

我想知道如何设置该坦克隐藏字段的默认值.这是我到目前为止显示/保存表单的函数

def addJournal(request, id=0):
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/')

    # checking if they own the tank
    from django.contrib.auth.models import User
    user = User.objects.get(pk=request.session['id'])

    if request.method == 'POST':
        form = JournalForm(request.POST)
        if form.is_valid():
            obj = form.save(commit=False)

            # setting the user and ts
            from time import time
            obj.ts = int(time()) …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-forms

220
推荐指数
5
解决办法
22万
查看次数

使模型中的用户默认为当前用户

我有以下内容:

from django.contrib.auth.models import User

class ClientDetails(models.Model):
    created_by = models.ForeignKey(User)
    ...
Run Code Online (Sandbox Code Playgroud)

如何created_by对当前登录的用户进行默认设置?

(我想这样做,所以我可以在管理视图中隐藏它,但也因为当我保存一个实例时我不想每次都填充它)

python django django-models django-admin

8
推荐指数
4
解决办法
1万
查看次数