我有一个模型字段,其中一些值是字体图标,其他是图像文件如何在一个字段中处理两种类型? 这些列表项是2种不同的类型,有些是fontawsome图标链接,有些是图像文件,我需要如何将它们放在模型字段中?
<ul class="list-inline dev-icons">
<li class="list-inline-item">
<i class="fab fa-html5"></i>
</li>
<li class="list-inline-item">
<i class="fab fa-css3-alt"></i>
</li>
<li class="list-inline-item">
<i class="fab fa-js-square"></i>
</li>
<li class="list-inline-item">
<i class="fab fa-sass"></i>
</li>
<li class="list-inline-item">
<i class="fab fa-python"></i>
</li>
<li class="list-inline-item">
<img class="img-fluid img-profile mx-auto mb-2" src="{% static 'img/sql.png' %}">
</li>
<li class="list-inline-item">
<img id="logo" src="{% static 'img/logo.png' %}">
</li>
</ul>
views.py:
from django.shortcuts import render, redirect
from django.views.generic.base import TemplateView
from .models import *
class homepage(TemplateView):
template_name = "index.html"
def get_context_data(self, **kwargs):
context = super(homepage, self).get_context_data(**kwargs)
context['About'] = About.objects.all()
context['Experience'] = Experience.objects.order_by('date')
return context
models.py:
from django.db import models
class About(models.Model):
name = models.CharField(max_length=200)
address = models.CharField(max_length=200)
mobile = models.CharField(max_length=200)
email = models.EmailField(blank=True)
description = models.TextField()
#interests = models.TextFileld()
def __str__(self):
return self.name
class Experience(models.Model):
title = models.CharField(max_length=200)
company = models.CharField(max_length=200)
date = models.CharField(max_length=200)
summery = models.TextField()
def __str__(self):
return self.title
所以我需要创建技能模型,在其中可以添加技能
答案 0 :(得分:0)
让我尝试找到您需要的东西。
1-您有一个模板(在问题下方编写的html代码),并且想要访问视图或模型中后端中的输入数据? 2-您有一个上面的模板,想要为其创建模型吗?
我没有添加评论的权限,所以我只是留下答案!
答案 1 :(得分:0)
我认为在基本视图中访问输入值将比正常方式难。因此它更好地使用view。它简单且没有任何限制!
首先,您需要在template.html
中添加view.py
标记,以便用户可以在其中输入值,并且可以访问<form>
中的值。为了获得最佳选择,请使用<input>
标签,并根据需要添加<form action="user/new_user/" method="post" >
<input name="name_value"
<input name="address_value">
<input name="mobile_value">
<input name="email_value">
<input name="description_value">
<button type=submit>submit form</button>
</form>
<div>
<p>{{message}}</p>
<p>{{boo}}</p>
</div>
。
像这样的东西:
template.html:
URL=user/new_user/
当用户按下“提交”按钮页面时,将转到urls.py
,因此请在import MyAppName.views
urlpatterns = [
path('user/new_user/', MyAppName.views.AddUser),
]
中添加该网址:
function AddUser
以上网址会将我们传递给views.py
中的views.py
。现在我们在<input>
中,我们想在这里访问<input>
的值。所有request
的价值都将包含在request.Post.get("name_of_input_tag")
中,我们只需使用from django.shortcuts import render
def AddUser(request): # attention all def in views.py need "request" and its necessary .
inputted_name = request.Post.get("name_value")
inputted_address= request.Post.get("address_value")
inputted_mobile= request.Post.get("mobile_value")
inputted_email= request.Post.get("email_value")
inputted_description = request.Post.get("description_value")
#now we have all inputted values from template , so do what you want!
#for example adding new "About"
About.objects.create(
name=inputted_name,
address=inputted_address,
mobile=inputted_mobile,
email=inputted_email,
description=inputted_description
)
# then we show some template with specific context
context = {
"message" : "new About created!",
"boo" : "foo boo doo ",
}
return render {request , "template.html" ,context}
就可以轻松获取价值:
views.py
experience
现在您知道如何在模板中输入数据并在view中访问它们。因此,为了保存“技能”,您可以在request.Post.get("skill_value")
的模型中添加新字段,并通过<input>
在view.py中根据需要设置值。不要忘记在request.Post.get("input_name")
中使用class Experience(models.Model):
title = models.CharField(max_length=200,null=True,blank=True)
company = models.CharField(max_length=200,null=True,blank=True)
date = models.CharField(max_length=200,null=True,blank=True)
summery = models.TextField(,null=True,blank=True)
skill = models.TextField(null=True,blank=True) # add this field
的名字。
models.py:
{{1}}