我正在尝试根据我在TableView中选择的行将数据发送到我的DetailViewController.我的项目是用StoryBoard制作的.
我的TableViewCell与我的MainStoryBoard中的UIView链接得很好,一切都很好,我不知道如何将所选行的信息发送到我的DetailView
这是我有的:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSUInteger section = [indexPath section];
NSUInteger row = [indexPath row];
NSUInteger oldRow = [lastIndexPath row];
NSString *key = [keys objectAtIndex:section];
detailRow = [names objectForKey:key];
static NSString *SectionsTableIdentifier = @"SectionsTableIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SectionsTableIdentifier];
if (cell == nil)
{
CGRect cellFrame = C
GRectMake(0, 0, 300, 65);
cell = [[UITableViewCell alloc] initWithFrame:cellFrame] ;
}
CGRect nameLabelRect = CGRectMake(200, 5, 200, 15);
UILabel *nameLabel = [[UILabel alloc] initWithFrame:nameLabelRect];
nameLabel.tag = kNameValueTag; …Run Code Online (Sandbox Code Playgroud) 给定一个models.py:
class Partner(models.Model):
... (fields irrelevant to this example)
class Lecture(models.Model):
... (other fields not relevant to this example)
partner models.ForeignKey(Partner)
Run Code Online (Sandbox Code Playgroud)
我有每个的ListView和每个的DetailView(工作正常)。
问题是在“ Partner DetailView”页面上,我有“讲座”列表。在很多情况下,此列表可能会很长(例如,> 200),并且涉众希望对其进行分页。我在ListView页面上的分页没有问题(很简单),但是我似乎无法在合作伙伴的DetailView页面上弄清楚如何在他们的演讲列表上进行分页。
我希望在Django文档代码中看到类似以下内容的代码:
class PartnerDetailView(DetailView):
model = Partner
paginate_using = Lecture # (or something like self.lecture ?)
paginate_by = 20
Run Code Online (Sandbox Code Playgroud)
因此,DetailView将作用于单个Partner对象,但将(轻松)允许从Lecture FK结果中进行分页。
有支持吗?还是会需要更多的自定义视图代码(也许将** kwargs中的'page'变量放入get_context_data()并基于该变量创建子集)?
在CBV下,这似乎是非常普遍的情况,所以我很困惑为什么搜索没有找到任何示例。
更新:我应该想到,执行此操作的一种简单方法是,将一个“页面”片段添加到引用DetailView的url()条目中,然后使用它在FK对象上创建分页的子集。
请注意,这也是解决“如何从FormView中分页结果”问题的可行方法。
我正在网站的前端显示你的管视频.管理员可以从站点后端的嵌入代码中提供您的管源.我想在视图页面上预览.以下是我尝试的代码,但它显示的是iframe标签(我知道这不是正确的方法)
[
'attribute'=>'source',
'value' => !empty($model->source) ? '<iframe class="embed-responsive-item" src="'.$model->source.'" frameborder="0" allowfullscreen></iframe>' : NULL,
],
Run Code Online (Sandbox Code Playgroud)
是否有像图像格式的东西:
[
'label'=>'Image',
'attribute'=>'userInfo.image',
'format' => ['image',['width'=>'100','height'=>'100']],
],
Run Code Online (Sandbox Code Playgroud) 我试图使用DetailView显示有关用户(配置文件页面)的信息。它可以工作,但是当我出于某种原因打开User的DetailView时,Django认为我已通过此用户身份验证。例如,如果我注销,请打开一些用户的DetailView,Django开始认为我是以该用户身份登录的。我可以看到问题,因为base.html显示了当前登录的用户,如果用户未通过身份验证,则会进行更改。任何想法有什么问题吗?谢谢!
views.py
class ProfileView(DetailView):
model = User
template_name = 'users/profile.html'
Run Code Online (Sandbox Code Playgroud)
urls.py
urlpatterns = [
path('profile/<int:pk>/<str:username>', ProfileView.as_view(), name='profile'),
]
Run Code Online (Sandbox Code Playgroud)
profile.html
{% extends 'base.html' %}
{% block content %}
<article class = 'media content-section'>
<div class="media">
<img class="avatar-image rounded-circle" src="{{ user.profile.image.url }}">
</div>
<div class = 'media-body'>
<div class='article-metadata'>
<h3>??????? {{user.username}}</h3>
</div>
<div class="article-content">
<p>{{user.first_name}}</p>
<p>{{user.email}}</p>
<p>{{user.profile.birthdate}}</p>
<p>{{user.date_joined}}</p>
</div>
</div>
</article>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
base.html
<div class="navbar-nav">
{% if user.is_authenticated %}
<div class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" …Run Code Online (Sandbox Code Playgroud) 如何将来自 forms.py 的上下文数据传递给使用通用 detailView 的视图类,我需要将 forms.py 传递给我的产品详细信息页面。
这是我的视图类的代码
class ProductView(generic.DetailView):
model = Product
cart_product_form = CartAddProductForm()
context = {'cart_product_form': cart_product_form}
template_name = 'shopping/product.html'
query_pk_and_slug = True
Run Code Online (Sandbox Code Playgroud)
如果这不正确,请告诉我
网址.py
urlpatterns = [
url(r'^employee/(?P<emp_no>[0-9]+)/$', TitleDetail.as_view(), name='e-title'),
# /employee/10001/
]
Run Code Online (Sandbox Code Playgroud)
视图.py
class TitleDetail(DetailView):
model = Title
pk_url_kwarg = "emp_no"
def get_context_data(self, **kwargs):
context = super(TitleDetail, self).get_context_data(**kwargs)
context['title_list'] = Title.objects.filter(emp_no_id=self.kwargs['emp_no'])
return context
Run Code Online (Sandbox Code Playgroud)
模型.py
class Title(models.Model):
emp_no = models.ForeignKey(Employee)
title = models.CharField(max_length=50)
from_date = models.DateField()
to_date = models.DateField()
Run Code Online (Sandbox Code Playgroud)
数据库中的样本数据:
id title from_date to_date emp_no_id
---------- --------------- ---------- ---------- ----------
1 Senior Engineer 1986-06-26 9999-01-01 10001
2 Staff 1996-08-03 9999-01-01 10002
Run Code Online (Sandbox Code Playgroud)
为什么它给我
找不到页面:找不到与查询匹配的标题。
我想为DetailView和GridView创建自己的格式选项.我现在使用可用的格式化程序选项,如datetime:
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'current_date:datetime'
]
]?>
Run Code Online (Sandbox Code Playgroud)
我想拥有这样的格式化程序:
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'current_date:datetime',
'colorId:color'
]
]?>
Run Code Online (Sandbox Code Playgroud)
其中color将colorId(即int的颜色标识符)转换为颜色名称.我知道我可以在模型中有一个函数/虚拟属性,但我想在任何地方使用它,而不仅仅是在某个模型上.我一直在搜索,但发现只需要我有特定的格式化程序.
如何在 yii2 上的行中创建URLDetailView?
例如:blow 代码类似于 中的自定义行GridView,但正如您所知,DetailView它是不同的,并且此代码在 中不起作用DetailView。
<?= DetailView::widget([
'model' => $model,
'attributes' => [
[
'attribute' => 'file',
'label' => 'File',
'fomat' => 'Url', // I want something like this
'value' => Html::a('Dowaload The File', ['files/uloads']),
],
])
Run Code Online (Sandbox Code Playgroud)
我还没有在类似的问题中找到我的问题的解决方案。
请帮助我Url在DetailView中创建行。
我如何呈现数据或将上下文数据重定向到generic.DetailView。我有型号说明
class Note(models.Model):
key = models.CharField(max_length=50, primary_key=True)
text = models.TextField()
Run Code Online (Sandbox Code Playgroud)
我的看法是
class ShowNote(generic.DetailView):
model = Note
template_name = 'notes/show_note.html'
def get(self, request, *args, **kwargs):
try:
self.object = self.get_object()
except Http404:
# redirect here
return render(request, 'notes/index.html', {'error': 'Note doesnt exist', })
context = self.get_context_data(object=self.object)
return self.render_to_response(context)
Run Code Online (Sandbox Code Playgroud)
url(r'^show/(?P.*)/$', views.ShowNote.as_view(), name='show_note'),
该页面显示注释的键及其文本,还有一个按钮,如果更改了文本,则会保存该文本。
def save_note(request):
key = request.POST['key']
selected_note = Note.objects.get(pk=key)
selected_note.text = request.POST['text']
selected_note.save()
//back to show_note
Run Code Online (Sandbox Code Playgroud)
如何{'message' : 'note was saved successfully'}使用相同的主键在“ notes / show_note.html”中呈现数据
对于这个超级好的 django 东西来说还是很新的。尽我最大努力...
在浏览器中尝试http://127.0.0.1:8000/angebot/1/应该会向我显示模型 Testkunde 中主键 1 的查询集
我需要在详细视图中定义查询集吗?通常使用 model = Testkunde 应该这样做?
非常感谢任何帮助!提前致谢!
视图.py
class TestkundeDetailView(DetailView):
model = Testkunde
template_name = 'angebot/detail.html'
context_object_name = 'testkunde_list'
Run Code Online (Sandbox Code Playgroud)
urls.py
urlpatterns = [
#path('', angebot_views.testkunde_list, name='testkunde_list'),
path('', angebot_views.TestkundeListView.as_view(), name='angebot-list'),
path('<int:pk>/', angebot_views.DetailView.as_view(), name='angebot-detail'),
]
Run Code Online (Sandbox Code Playgroud)
模型.py
class Testkunde(models.Model):
auswahl = (
('Ausw1', 'Ausw2'),
('Ausw2', 'ausw2'),
('Ausw3', 'ausw3'),
)
vname = models.CharField(max_length=250,default='vname')
nname = models.TextField(default='default')
tel = models.CharField(max_length=250,default='0664')
ausw = models.CharField(max_length=10,choices=auswahl,default="Ausw1")
datum = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.vname
def get_absolute_url(self):
return reverse('angebot:testkunde_list',)
Run Code Online (Sandbox Code Playgroud)
错误:
/angebot/1/ …
python django web-applications django-class-based-views detailview
detailview ×10
django ×6
python ×4
yii2 ×3
formatter ×1
generics ×1
gridview ×1
listview ×1
objective-c ×1
pagination ×1
php ×1
sqlite ×1
storyboard ×1
tableview ×1
video ×1
youtube ×1