自动填充Django中的User字段(无此列)

2024-10-05 13:19:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试自动填充BucketListItemForm中的“pub_日期”字段。我已经能够使用时间和日期字段执行此操作,但在尝试使用“发布依据”字段执行此操作时,不断出现以下错误:

没有这样的列:BucketList_bucketlistitem.pub_按_id在

在过去的几天里,我一直在玩弄我能想到的所有东西,并在StackOverflow上看到其他有类似问题的人,但似乎没有什么能解决我的问题。我将非常感谢你能提供任何数量的帮助!在

在表单.py在

class BucketListItemForm(forms.ModelForm):

class Meta:
    model = BucketListItem

在模型.py在

^{pr2}$

在视图.py在

def index(request):
    all_list_items = BucketListItem.objects.all()
    context = {'all_list_items': all_list_items}
    return render(request, 'BucketList/index.html', context)

def my_list(request):
    personal_list = BucketListItem.objects.filter(pub_by = request.user.username)
    context = {'personal_list': personal_list,
                  'user': request.user.username}
    return render(request, 'BucketList/mylist.html', context)

def create(request):
    if request.POST:
        form = BucketListItemForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/bucketlist/mylist')
    else:
        form = BucketListItemForm()

    args = {}
    args.update(csrf(request))
    args['form'] = form

    return render_to_response('BucketList/create_item.html', args)

在管理员py在

class BucketListItemAdmin(admin.ModelAdmin):
    fieldsets = [
        ('Text',              {'fields': ['text']}),
    ]
    readonly_fields = ('pub_date',)
    list_display = ['text', 'pub_date', 'pub_by', 'recently_added']
    list_filter = ['pub_date', 'pub_by']
    search_fields = ['text']

def save_model(self, request, obj, form, change):
    if not change:
        obj.user = request.user
    super(self.__class__, self).save_model(request, obj, form, change)

admin.site.register(BucketListItem, BucketListItemAdmin)

在我的列表.html在

{% if user %}

<h1>{{user}}'s Bucket List</h1>
{% if personal_list %}
    <ol>
    {% for item in personal_list %}
        <li>{{ item.text }}</li>
    {% endfor %}
    </ol>
{% else %}
    <p>You don't have any Bucket List items yet!  Better get on that.</p>
{% endif %}

{% else %}
    <p>Sorry, it doesn't seem like you are logged in!</p>
{% endif %}

创建_项目.html在

<form action = "/bucketlist/create/" method = "post">{% csrf_token %}
<ul>
{{form.as_ul}}
</ul>

<input type = "submit" name = "submit" value = "Create BucketListItem">
</form>

Tags: pyformifrequestdefhtmlallpersonal
1条回答
网友
1楼 · 发布于 2024-10-05 13:19:19

更新代码后似乎忘记同步数据库。尝试删除您正在使用的数据库(或删除它),然后再次运行syncdb。我可以帮助你进一步,如果你发布你的完整代码,即html文件与表单呈现,如果这不起作用。在

相关问题 更多 >

    热门问题