Py学习  »  arjun  »  全部回复
回复总数  9
2 年前
回复了 arjun 创建的主题 » 比较视图中的对象。Django中两个不同模型对象的py

你需要重新设计你的模型。

将所有技能存储在单独的表格中。

class Skill(models.Model):
  name = models.CharField(max_length=50) # example web development

现在,您可以通过多种关系将您的工作和用户配置文件模型与技能模型联系起来。

class Job(models.Model):
  ......
  skills = models.ManyToManyField(Skill)
 
class UserProfile(models.Model):
.........
  skills = models.ManyToManyField(Skill)

现在你可以找到与之匹配的工作了。

 user_skills = request.user.userprofile.skills.all()
 matched_jobs = Job.objects.filter(skills__in=user_skills)
4 年前
回复了 arjun 创建的主题 » 如何在Django注册后自动登录?

您可以这样验证新注册的用户

from django.contrib.auth import login, authenticate

if response.method == 'POST':
        form = RegisterForm(response.POST)
        if form.is_valid:
            form.save()
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('password1')
            user =  authenticate(request,username=username, password=password)
            if user:
                login(request, user)
                return redirect..
4 年前
回复了 arjun 创建的主题 » 为Django的内置LoginView添加成功消息

你可以这样尝试:

from django.contrib.messages.views import SuccessMessageMixin

class LoginFormView(SuccessMessageMixin, LoginView):
    template_name = 'auth/login.html'
    success_url = '/success_url/'
    success_message = "You were successfully logged in."

在网址里

path('login/', LoginFormView.as_view(), name='login'),
4 年前
回复了 arjun 创建的主题 » 是否可以通过Django模板在if条件中使用模型字段?

自从你 Path 模型具有 OneToOne 与…的关系 User

{% if request.user.path.path %}
    <button class="btn btn-outline-info" onclick="function()" id='button'> Initiate Index </button>
{% else %}
    No button
{% endif %}
4 年前
回复了 arjun 创建的主题 » Django如何在模板中设置model1.model2.all()?

首先你需要通过 model1 通过如下上下文实例到模板:

   def your_view(request,pk):
      model1_instance = YourModel.objects.get(pk=pk)
      return render(request,'your_template',{'model1':model1_instance})

现在在你的模板中 {% for model2 in model1.model2_set.all %} 应该有用。

编辑: 如果已将queryset传递给模板,则可以这样做

{% for obj1 in your_model1_queryset %}
   {% for obj2 in obj1.model2_set.all %}
      ...
   {% endfor %}
 {% endfor %}
4 年前
回复了 arjun 创建的主题 » 如何在Django的注册表中添加两个模型?

自从你 Profile 模型连接到 User 模型通过 OneToOne 关系,因此您需要将用户分配给您的配置文件,如下所示:

if user_form.is_valid() and profile_form.is_valid():
user = user_form.save() profile = profile_form.save(commit = False)
# assign user to your profile
profile.user = user profile.save()
return redirect('login')
4 年前
回复了 arjun 创建的主题 » Django错误:没有匹配查询

我看不出有什么地方可以创造 user_register_model 。如果要添加当前登录的用户,可以执行以下操作:

request.user 将为您提供当前登录的用户,因此为此用户必须登录。

    @login_required
    def buy_form(request):
    if request.method == 'POST':
        usr_buy = user_buy_form(request.POST)
        if usr_buy.is_valid():
            usr_buys = usr_buy.save(commit=False)
            usr_buys.users = request.user
            usr_buys.save()
            return redirect('some_path') # redirect to some path after saving the form 

类名通常应该使用CapWords约定。

4 年前
回复了 arjun 创建的主题 » 如何在消息django中添加空行?

您可以为此使用额外的_标记:

messages.error(request, 'A soma das despesas correntes e das despesas de capital <br> ultrapassam o valor total do projeto.', extra_tags='safe')

现在在模板中

{% for message in messages %}
    {{message|safe}}
{% endfor %}
4 年前
回复了 arjun 创建的主题 » noreversematch at/django模板呈现

如果试图重定向到空路径,则需要更改此

return redirect (' ')

return redirect ('/')

产科加强生命支持 你需要在模板中渲染并传递jedelo对象,我在这里没有看到。

def hotovo(request, jedlo_id):
  jedlo=
  VyberJedla.objects.get(pk=jedlo_id)
  jedlo.vybrane = True
  jedlo.save()

  return render(request,'your_template',{'jedlo':jedlo})

编辑:在模板中,使用循环变量迭代对象 zoznam 所以不是 jedlo.id 使用 zoznam.id

  <h1><a href="{% url 'hotovo' zoznam.id 
%}" class="hotovo"> 

确保 佐兹南.id 一定是一样的 VyberJedla 模型对象。